我有一个Gradle复制任务设置来发布未修饰的JAR文件以进行测试和调试,即
任务定义:
task copyJarToStaging( type: Copy ) {
from jar // shortcut for createJar.outputs.files
into ( "${rootProject.rootDir}/dist/" )
rename( '-.*\\.jar', ".jar" )
}
将JAR文件放入一个目录中。真正需要的是将JAR放入" dist/
"下的一个或多个不同的文件夹中。
经过多次试验(以及错误)后,我发现这个版本对我有用。
调用复制任务:
// build.gradle (module)
assemble.dependsOn copyJarToStaging {
println "into ==> ${destinationDir}/support"
into "${destinationDir}/support/"
}
然而,它并没有真正闻到。
有更清洁的替代方式吗?我本来希望一个闭包只是附加到into
属性 - 但它没有去。
如果我想在不同的地方使用相同的文件,那么我可以做更好的事情,例如取回into
字符串和yield
每个值。
部分或全部可能吗?或者,我在做梦吗???
答案 0 :(得分:1)
通常,您可以创建多个复制任务
['dev', 'staging', 'uat', 'prod'].each { String dir ->
Task task = tasks.create("copyJarTo${dir.capitalize()}", type: Copy) {
from jar
into "dist/$dir"
}
assemble.dependsOn task
}