gpt4 book ai didi

gradle - 对子项目 war 任务的依赖

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

我有以下结构:

./build.gradle
./api
./api/build.gradle
./web
./web/build.gradle
./other
./other/build.gradle

apiweb项目都使用了war插件,但是other项目只有java 插件。

我想在根项目中为 heroku 定义一个任务,即:

  • 对所有拥有它的子项目执行clean任务
  • 对所有拥有它的子项目执行war任务
  • 对所有拥有它的子项目执行build任务

我看到了这个答案:Gradle batch task that invokes subproject and other tasks in order但它失败了。尝试了以下配置

task stage() {
dependsOn subprojects.clean
dependsOn subprojects.war
dependsOn subprojects.build
}

并得到这个错误:

* What went wrong:
A problem occurred evaluating root project 'baltona-mdm'.
> Could not find property 'war' on project ':api'.

(api war 插件,如果我取消注释任务阶段,我可以运行gradle :api:war)

我该怎么做?

最佳答案

错误的解决方法:

Could not find property 'war' on project ':api'

是为了使用

evaluationDependsOnChildren()

然而,对于标题中的问题,我想出了类似的东西:

task stage() {

subprojects.each({p ->
dependsOn p.clean
if(hasWarTask(p)) {
dependsOn p.war
} else {
dependsOn p.build
}
})
}

private boolean hasWarTask(Project p) {
!p.getTasksByName("war", false).isEmpty()
}

我不喜欢它,所以如果有人有更好的解决方案,我愿意接受替代方案。

关于gradle - 对子项目 war 任务的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788890/

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