Gradle-如何防止依赖子模块';如果从属任务失败,是否阻止任务运行?
在具有模块Gradle-如何防止依赖子模块';如果从属任务失败,是否阻止任务运行?,gradle,Gradle,在具有模块mod-a和mod-b的多模块项目中,mod-b将mod-a作为项目库依赖项: project(":mod_b") { dependencies { implementation project(':mod_a') } } mod-a和mod-b都配置为在测试通过时发布Maven工件(JAR),使用: 当我使用标志运行Gradle时,如果mod-a中的测试失败,则不会发布mod-a工件。但是,为mod-b发布工件。为什么会出现这种情况,以及如何防止这种
mod-a
和mod-b
的多模块项目中,mod-b
将mod-a
作为项目库依赖项:
project(":mod_b") {
dependencies {
implementation project(':mod_a')
}
}
mod-a
和mod-b
都配置为在测试通过时发布Maven工件(JAR),使用:
当我使用标志运行Gradle时,如果mod-a
中的测试失败,则不会发布mod-a
工件。但是,为mod-b
发布工件。为什么会出现这种情况,以及如何防止这种情况发生(我希望继续使用--continue
选项)
e、 g.这导致com的发布。例如:mod-b:x.y.z
,但我不希望它:
./gradlew --continue clean publishToMavenLocal
i、 e.如果有3个模块(
mod-a
-依赖于->mod-b
-依赖于->mod-c
),那么如果只有mod-b
的测试失败,那么只有mod-a
应该发布)。解决方案是让发布任务也依赖于任务。buildNeeded
任务构建并测试相关项目所需的所有其他项目。因此,如果依赖任务失败,buildNeeded
将被标记为失败,因此发布任务将不会启动。b的测试通过而a的测试不通过是真的吗?是的-我发现buildNeeded
任务是指依赖项目的成功构建和测试所需要的。
./gradlew --continue clean publishToMavenLocal