gpt4 book ai didi

groovy - 使用自定义任务编排Gradle构建调用

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

我正在尝试定义两个新的Gradle任务buildAllpubLocal,以按特定顺序运行其他任务。

调用gradle buildAll时,我希望Gradle做与执行gradle clean build writePom相同的操作(请参阅下面的writePom)。

当执行gradle pubLocal时,我希望Gradle执行与执行gradle buildAll install相同的操作。

到目前为止,这是我最好的尝试:

// build.gradle
task writePom << {
pom {
project {
groupId 'mygroup'
artifactId 'mylib'
version version

inceptionYear '2015'
licenses {
license {
name 'Blah'
url 'blah'
distribution 'blah'
}
}
}
}.writeTo("build/libs/pom.xml")
}

task buildAll(dependsOn: clean, build, writePom)

task pubLocal(dependsOn: buildAll, install)

当我对此运行 gradle buildAll时,我得到:
myuser@mymachine:~/tmp/myapp$./gradlew buildAll
FAILURE: Build failed with an exception.

* Where:

Build file '/Users/myuser/tmp/myapp/build.gradle' line: 67

* What went wrong:

A problem occurred evaluating root project 'myapp'.

> Could not find method buildAll() for arguments [{dependsOn=task ':clean'}, task ':build', task ':writePom'] on root project 'myapp'.

关于我要去哪里的任何想法?

最佳答案

这可能是复制粘贴后遗留下来的,但是您的字符串未使用标准的单引号或双引号引起一致。例:

    }.writeTo(“build/libs/pom.xml")

不能正确引用字符串,因为它以 字符而不是 "开头。与上面的单引号相同。

从突出显示代码的方式可以看到,红色的所有内容都被解释为字符串。如果在您的实际代码中是这种情况,则 buildAllpubLocal任务将无法识别,因为它们是字符串而不是代码的一部分。

更新:

由于以上答案现在无关紧要,因此这是另一种可能性。错误消息显示,dependsOn参数中仅列出了 "clean"任务。 buildAll任务依赖项应这样声明:
task buildAll(dependsOn: [clean, build, writePom])

pubLocal任务相似。

关于groovy - 使用自定义任务编排Gradle构建调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078511/

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