1

Herokuの「Mavenプロジェクトへのアンマネージ依存関係の追加」の記事に従って、JavaプロジェクトにローカルJAR依存関係を追加しようとしています。リポジトリ要素を追加/更新するように指示される[Pomファイルの更新]セクションでスタックし続けます。サンプルのリポジトリ要素をpom.xmlファイルに追加しましたが、コードをherokuにプッシュしようとすると、次のエラーが発生します。

プロジェクトfujiで目標を実行できませんでした:プロジェクトcom.example.fuji:fuji:jar:1.0の依存関係を解決できませんでした-SNAPSHOT:プロジェクトでアーティファクトcom.example.tambora:Tambora:jar:0.0.1-SNAPSHOTが見つかりませんでした。ローカル

リポジトリIDまたは名前要素の名前が間違っているようですが、それらを何に変更する必要があるのか​​もわかりません。エラーを受け取ることなく、このアプリケーションをローカルで実行できます。

これが私のpom.xmlファイルです

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.fuji</groupId>
  <artifactId>fuji</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Fuji</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>com.example.tambora</groupId>
      <artifactId>Tambora</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper-el</artifactId>
        <version>7.0.22</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>7.0.22</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>fuji</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <version>1.1.1</version>
            <configuration>
                <assembleDirectory>target</assembleDirectory>
                <programs>
                    <program>
                        <mainClass>launch.Main</mainClass>
                        <name>webapp</name>
                    </program>
                </programs>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>assemble</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>
  <repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>
</project>
4

1 に答える 1

2

これはcom.example.tambora:Tambora:jar:0.0.1-SNAPSHOTSNAPSHOT が原因で発生している可能性がありますが、カスタム リポジトリに対して SNAPSHOT が有効になっていません。Maven: The Complete Referenceによると、これは必須です:

デフォルト設定では、Maven はリモート リポジトリの SNAPSHOT リリースをチェックしません。SNAPSHOT リリースに依存するには、POM のリポジトリまたは pluginRepository 要素を使用してスナップショットをダウンロードする機能を明示的に有効にする必要があります。

次のようにできるはずです

<repository>
    <id>project.local</id>
    <name>project</name>
    <url>file:${project.basedir}/repo</url>
    <snapshots>
        <enabled>true</enabled>
    <checksumPolicy>fail</checksumPolicy>
  </snapshots>
</repository>

また、これをローカルでトラブルシューティングする場合は、~/.m2/repo/com/example/tamboraディレクトリを削除することをお勧めします。これは、Maven がプロジェクトに埋め込まれている JAR ではなく、ローカル リポジトリで JAR を見つけている可能性があるためです。

于 2013-02-01T01:23:45.093 に答える