これまで問題なくコンパイルできたMavenプロジェクトがあります。今日、 を実行するmvn clean package -U
と、次のようになります。
[エラー] プロジェクト myproj でゴールを実行できませんでした: プロジェクト org.myorg.myproj:myproj:jar:1.0-SNAPSHOT の依存関係を解決できませんでした: 次の成果物を解決できませんでした: javax.servlet:javax.servlet-api:src :sources:3.0.1, org.eclipse.jetty:jetty-servlet:src:sources:8.1.2.v20120308, org.eclipse.jetty:jetty-server:src:sources:8.1.2.v20120308, org.eclipse .jetty:jetty-webapp:src:sources:8.1.2.v20120308、commons-io:commons-io:src:sources:2.4: アーティファクト javax.servlet:javax.servlet-api:src:sources:3.0 が見つかりませんでした.1 in MyRepo (http://maven.myorg.org:9001/nexus/content/repositories/myrepo/) -> [ヘルプ 1]
新しいローカル Maven リポジトリ ( ) を使用しようとしましたrm -fr ~/.m2/repository
が、違いはありませんでした。
Maven がアーティファクトを見つけようsource
とするのはなぜですか? src
問題がどこにあるのか考えてみませんか?
編集:私の依存関係(を使用して見られるように)には分類子mvn help:effective-pom
がありません。source
たとえばjetty-server
、エラー メッセージに記載されている への依存関係は次のようになります。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>8.1.2.v20120308</version>
<scope>compile</scope>
</dependency>
解決策: @AlessandroSantini と @brian-topping の助けを借りて、ようやく問題を特定しました。私の間接的な依存関係の 1 つには、<classifier>sources</classifier>
とがありました<type>src</type>
。(mvn help:effective-pom
これらの間接的な依存関係は表示されmvn dependency:tree
ず、上記のエラー メッセージも表示されて失敗しました。最終的に、grep -r 'jetty-server' ~/.m2/repository/ -C 3
めちゃくちゃな依存関係を持つアーティファクトが特定されました。)
私自身のSBTプロジェクトのwithSources()
1 つが、その依存関係の 1 つに (存在しない) ソース アーティファクトを必要としEclipseKeys.withSource := true
ていることが判明しました。