8

私はgradleを初めて使用しますが、私が取り組んでいるプロジェクトのビルドは、何ヶ月もの間、ほとんど単独で機能しています。今日、私はそれを「グラドル」しようとしましたが、かなり不思議なエラーが発生しました...

bobk-mbp:DM_Server bobk$ gradle
:clean
:readme
:compileJava

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':compile'.
> Artifact 'org.apache.james:apache-mime4j:0.6@jar' not found.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 7.114 secs

問題は、依存関係セクションで org.apache.james:apache-mime4j に明示的な依存関係がないため、他の何かに依存しているに違いありません。どの依存関係が実際にこれを必要としているかをどのように把握し、次に、この不足しているアーティファクトをどのように克服または回避するのですか?

4

1 に答える 1

11

楽しかったです。Mavenの依存関係:ツリーに相当するグラドルは

gradle dependencies
compile - Classpath for compiling the main sources.
+--- com.google.guava:guava:11.0.2 [default]
|    \--- com.google.code.findbugs:jsr305:1.3.9 [compile,master,runtime]
...
+--- org.jboss.resteasy:resteasy-multipart-provider:2.3.0.GA [default]
|    +--- javax.mail:mail:1.4.4 [compile,master,runtime]
|    |    \--- javax.activation:activation:1.1 [compile,master,runtime]
|    +--- org.apache.james:apache-mime4j:0.6 [compile,master,runtime]

これにより、ジェームズの依存関係が resteasy 経由で入ってくることが明らかになりました。この知識だけでは役に立ちませんでした。私のローカルキャッシュが悪くなったようです。ローカルの m2 キャッシュ (~/.m2) を空にすることで問題が解決しました (一度に rm -rf を 1 つのパッケージで開始しましたが、すぐに古くなりました)。

rm -rf ~/.m2

どうやら、このインフラストラクチャについて学ぶ必要があることがたくさんあります。これを行うためのより良い方法があると確信しています。

于 2012-06-12T19:00:38.613 に答える