gpt4 book ai didi

eclipse - Gradle多项目任务执行行为

转载 作者:行者123 更新时间:2023-12-03 04:33:39 25 4
gpt4 key购买 nike

我正在使用用于Eclipse的STS插件进行Gradle多项目构建。我以为我在阅读tutorial之后就掌握了基本知识,但是我无法重现显示的行为。添加时

allprojects {
task hello << {task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I GradleMaster"}
}

对于父项目的build.gradle,我假设每个项目都要执行任务“hello”。对于子项目实际上是2次,但结果仅为:
[sts] -----------------------------------------------------
[sts] Starting Gradle build for the following tasks:
[sts] :hello
[sts] -----------------------------------------------------
:hello
I'm GradleMaster

BUILD SUCCESSFUL

我的项目树或多或少看起来像这样:
Application/
GradleMaster/
build.gradle
settings.gradle
EAR/
build.gradle
EJB/
build.gradle
AppClient/
build.gradle

GradleMaster / settings.gradle:
include ':EAR', ':EJB', ':AppClient' 

如您所见,父项目与子项目处于同一级别。我已经在更高级别的根项目中有了它,但是我没有注意到任何区别。

我还想知道在所有项目具有共同点的根项目上执行任务时gradle的行为方式。例如,如果所有子项目都应用了“base”插件,那么是否不应该在根项目上“清理”所有子项目也执行其“清理”版本?

最佳答案

在写问题时,我没有想到这可能是Eclipse STS插件而不是Gradle本身的问题。实际上,我什至没有提到我在Eclipse上使用Gradle,这使得这个问题几乎无法回答。

事实证明,这是STS插件调用任务的方式。有任务和任务选择器。调用任务仅在项目中执行任务,而调用任务选择器在多重构建项目中执行相同名称的所有任务。

Gradle论坛中的st_oehme's post带我走了正确的路。

我已经不再安装带有Gradle STS的Eclipse,因此我无法确切告诉您调用任务选择器而不是单个任务所要做的事情。也许其他人可以添加...

关于eclipse - Gradle多项目任务执行行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com