根据http://www.gradle.org/docs/current/userguide/java_plugin.html和图 23.1,jar 任务依赖于 classes 任务。
在我的场景中,我有一个包含三个项目的多项目 - ProjectCommon、ProjectApp1 和 ProjectApp2。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')
(给出弃用警告)