我想使用基本插件发布一些工件。这就是我的构建的样子:
apply plugin: 'base'
group = 'eu.com'
version = '0.9'
def winCdZip = file('dist/winCd.zip')
configurations {
wincd
}
repositories {
ivy {
url 'http://ivy.repo'
}
}
artifacts {
wincd winCdZip
}
buildscript {
repositories {
ivy {
url 'http://ivy.repo'
}
}
dependencies {
classpath group: 'eu.com', name:'MyCustomTask', version:'0.9-SNAPSHOT', configuration: 'runtime'
}
}
buildWincd {
// call MyCustomTask; is it possible to call it in this way?
MyCustomTask {
// pass few parameters required by this task
}
// I know that it's impossible to call zip in this way but I don't want to create another task
zip {
// build zip and save it in 'winCdZip'
}
}
uploadWincd {
repositories { add project.repositories.ivy }
}
这些是我要解决的问题:
- 是否可以创建嵌套任务?
- 是否可以在不创建新任务但使用闭包的情况下调用 zip?
- 是否可以使用闭包调用自定义任务(与第二点相同的示例)?
我可以通过这种方式创建 zip/自定义任务
task myZip(type: Zip) {
// do the job
}
可以这样称呼吗?
zip {
// do the job
}
如果无法使用闭包调用任务,我该怎么做?创建新任务是唯一的方法吗?也许我可以创建嵌套任务?