7

次のような Maven プロジェクト構造があります。

Parent
 L A
 L B

Aに依存するB

どちらも他のライブラリにさまざまな依存関係があります

これをビルドすると問題なく動作しますが、ここmvn clean install説明されているようにすべての依存関係を削除しようとすると、

mvn dependency:purge-local-repository

への依存関係を解決できないというエラーが表示されますB:jar:snapshot-version

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.10:purge-local-repository (default-cli) on project A: Failed to refresh project dependencies for: A:jar:4.0.1-SNAPSHOT: required artifacts missing:
[ERROR] B:jar:6.0-5

私の現在の解釈では、実際のビルドでBは最初にビルドを取得して解決できますが、パージ中は何もビルドされないため、解決は失敗します。しかし、プロジェクトはそこにあり、その依存関係はパージされるはずです。どうすればこれを修正できますか?

-DactTransitively=false

何も変わらないようです。

4

2 に答える 2

9

@Tunakiが参照している正確な問題ではないようですが、そこにある例でこれを試してみましょう:

mvn dependency:purge-local-repository -DreResolve=false

これは例外を取り除きましたが、問題があった依存関係を実際にリロードできませんでした。この答えに出くわした時点で、私は試してみました

mvn dependency:purge-local-repository -DreResolve=false -DactTransitively=false

私が達成したかったこととは反対のことを要求しているように見えますが、これで問題は解決しました:-/

于 2016-04-27T11:33:13.587 に答える
3

これは、Maven 3.0.4 のリグレッションによって導入されたmaven-dependency-plugin(JIRA 問題MDEP-405 ) のバグのようです。

ポール・ギアのコメントから:

これが発生する理由は、削除する推移的な依存関係の完全なセットを決定するために、pom が利用可能である必要があるためだと思います。前のモジュールで pom が既に解決されている場合、Maven はそれらを再度解決せず、単に失敗します。そのため、依存関係にはローカル リポジトリから既に削除されているファイルに関する問題はありませんが、同じビルドで同じファイルを 2 回解決しようとすると、Maven の依存関係解決コードが失敗します。

Maven 3.0.4 でこれに変更があったため、Maven 3.0.3 でビルドを試すことができます: http://mail-archives.apache.org/mod_mbox/maven-dev/201210.mbox/%3C5752023.Vp0WJBo1vZ% 40bigmax%3E

これは、現在未解決の回帰MNG-5366に関連しています。

Mavenをダウングレードする以外に、実際の回避策はありません。

于 2016-04-27T10:44:03.127 に答える