Gradle 任务之间没有粘滞的设置
我正试图通过消除重复来减少构建脚本代码。然而,我找不到一个办法让它工作 这就是我今天所说的(但更多的重复): 我试图通过这样做来减少重复:Gradle 任务之间没有粘滞的设置,gradle,groovy,Gradle,Groovy,我正试图通过消除重复来减少构建脚本代码。然而,我找不到一个办法让它工作 这就是我今天所说的(但更多的重复): 我试图通过这样做来减少重复: task setupTest(type: Test) { exclude 'folderA/*' environment 'MYVAR', 'myvar' } task testA(type: Test) { ... } testA.dependsOn setupTest task testB(type: Test) {
task setupTest(type: Test) {
exclude 'folderA/*'
environment 'MYVAR', 'myvar'
}
task testA(type: Test) {
...
}
testA.dependsOn setupTest
task testB(type: Test) {
...
}
testB.dependsOn setupTest
块setupTest在testA和testB之前运行,但exclude和env变量丢失(使用print语句进行测试)
如何实现这样的目标?您的自定义测试任务如何
class MyTest extends Test {
@TaskAction
def init() {
exclude 'folderA/*'
environment 'MYVAR', 'myvar'
}
}
task testA(type: MyTest) {
// ...
}
task testB(type: MyTest) {
// ...
}
gradle文件只是一个groovy脚本,定义一个groovy函数并正常调用它,而不是依赖gradle端的调用钩子,这不是更简单吗?我已经尝试过了,但也没有成功。不知道如何访问环境和排除函数,也不知道如何传递对它们的访问。
class MyTest extends Test {
@TaskAction
def init() {
exclude 'folderA/*'
environment 'MYVAR', 'myvar'
}
}
task testA(type: MyTest) {
// ...
}
task testB(type: MyTest) {
// ...
}