4

これまで問題なくコンパイルできた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ていることが判明しました。

4

1 に答える 1

2

公開スナップショットへの依存関係はありますか? の出力を見て、mvn dependency:tree何らかの形でソースを含む推移的な依存関係を見つけることができるかどうかを確認します。おそらく、最後のビルド以降に他動詞の 1 つが変更され、何か台無しになっている可能性があります。

于 2012-10-17T22:23:28.710 に答える