10

古い Maven プロジェクトをビルドしようとしていますが、次のエラーが発生します。

[エラー] プロジェクト myapp でゴールを実行できませんでした: プロジェクト com.initech.myapp:war:${buildVersion} の依存関係を解決できませんでした: http://mvnrepoで tangosol:tangosol-coherence:jar:3.3-rc1 が見つかりません.initech.com/archiva/repository/initechrepoはローカル リポジトリにキャッシュされました。initechrepo の更新間隔が経過するか、更新が強制されるまで、解決は再試行されません -> [ヘルプ 1]

MyAppを調べたところ、pom.xml「tangosol」について言及されておらず、親 POM がないため、これは推移的な依存関係であるに違いないと考えています。

通常、コマンド ラインでMaven Dependency プラグインを使用して、mvn dependency:tree推移的な依存関係を表示できます。ただし、依存関係がないため、ビルドは失敗し、ツリーが表示される代わりにエラーが発生します。

ビルドが失敗している場合でも、推移的な依存関係が欠落している原因を特定するにはどうすればよいですか?


編集:失敗した理由はわかっています。アーティファクトローカルリポジトリ中央リポジトリにありません。問題は、どの依存関係がそれを求めているかです。

4

2 に答える 2

10

より良い方法があるはずですが、デバッグ モードでコマンドを実行すると (つまり-X、完全なコマンドが になりmvn -X dependency:treeます)、ビルドが終了する前にトレースが出力されます。

    ...
[DEBUG]    org.springmodules:spring-modules-cache:jar:0.9:compile
[DEBUG]       opensymphony:oscache:jar:2.3:compile
[DEBUG]       tangosol:tangosol-coherence:jar:3.3-rc1:compile
[DEBUG]       oro:oro:jar:2.0.8:compile
[DEBUG]       org.apache.jcs:jcs:jar:1.3:compile
[DEBUG]          concurrent:concurrent:jar:1.0:compile
    ...

より良い答えは大歓迎です。

于 2013-07-31T19:05:08.447 に答える
0

ローカルリポジトリで利用できない場合、maven が必要な依存関係を MAVEN CENTRAL REPO からダウンロードしなかったのはなぜでしょうか。

mvn dependency:tree は、階層を確認するのに役立ちます。つまり、どの jar が他のどの jar に依存するかがわかります。

したがって、ここから推測できることは、必要な jartangosol-coherenceが内部の nexus リポジトリにないということです。すなわち

http://mvnrepo.initech.com/archiva/repository/initechrepo  

したがって、この問題を解決するには、必要な jar を内部の nexus リポジトリにインストールするか、一時的な解決策として、その jar をダウンロードしてローカル システム リポジトリに配置し、ビルドを成功させる必要があります。

ありがとう

于 2013-07-31T19:40:01.527 に答える