http://www.gradle.org/docs/current/userguide/java_plugin.htmlと Figure 23.1 によると、jar タスクは classes タスクに依存しています。
私のシナリオでは、ProjectCommon、ProjectApp1、および ProjectApp2 の 3 つのプロジェクトを含むマルチ プロジェクトがあります。ProjectApp1 は ProjectCommon に依存し、ProjectApp2 は ProjectCommon に依存します。
ProjectApp1 と ProjectApp2 の build.gradle は次のとおりです。
dependencies {
compile project(':ProjectCommon')
}
今は ProjectApp1 だけをビルドしたくありません。
$ gradle :ProjectApp1:build
出力は、たとえば ProjectCommon のテストとチェックが実行されていないことを示しています。
:ProjectCommon:compileJava UP-TO-DATE
:ProjectCommon:processResources UP-TO-DATE
:ProjectCommon:classes UP-TO-DATE
:ProjectCommon:jar
:ProjectApp1:compileJava UP-TO-DATE
:ProjectApp1:processResources UP-TO-DATE
:ProjectApp1:classes UP-TO-DATE
:ProjectApp1:jar
:ProjectApp1:assemble
:ProjectApp1:compileTestJava UP-TO-DATE
:ProjectApp1:processTestResources UP-TO-DATE
:ProjectApp1:testClasses UP-TO-DATE
:ProjectApp1:test
:ProjectApp1:check
:ProjectApp1:build
BUILD SUCCESSFUL
Total time: 4.633 secs
ProjectApp1 は、ProjectCommon が本当に問題ないかどうかを知らずにビルドされるようになりました...
(もちろん、これを回避するために代わりに gradle :ProjectCommon:build :ProjectApp1:build を実行できます)。
jar が一般的にチェックに依存する場合、「より安全」ではないでしょうか?
または、依存関係に何か問題があるので、ProjectApp1 と ProjectApp2 の build.gradle で使用する必要があります。
dependsOn(':ProjectCommon')
(非推奨の警告が表示されます)