我在 intelliJidea 的 java 项目上使用 gradle-2.8。我需要将 2 个不同的资源复制到 2 个不同的文件夹中。
我试过:
task copySubprojectLibs (type: Copy, dependsOn: subprojects.jar) {
from (subprojects.jar) {
into 'build/libs/lib'
}
from ('src/main/resources') {
into 'build/libs/nosr/conf'
}
}
然后尝试:
task copySubprojectLibs (type: Copy, dependsOn: subprojects.jar) {
from (subprojects.jar) into 'build/libs/lib'
from ('src/main/resources') into 'build/libs/nosr/conf'
}
然后尝试删除 dependsOn、类型参数、重新排序行等,但我总是得到
> No value has been specified for property 'destinationDir'.
要将 2 个资源复制到 2 个不同的文件夹,我需要做什么?在一个任务或两个任务中,这个东西在两个任务中也不起作用。但是一行简单的复制和一项任务就可以了。如何在一项任务中做到这一点?这是一个简单的问题,为什么 gradle 这么棘手?
最佳答案
Copy task配置了 CopySpec , 它只允许一个目标目录。
改为考虑这种方法:
task copySubprojectLibsA (type: Copy, dependsOn: subprojects.jar) {
from subprojects.jar
into 'build/libs/lib'
}
task copySubprojectLibsB (type: Copy, dependsOn: subprojects.jar) {
from 'src/main/resources'
into 'build/libs/nosr/conf'
}
task copySubprojectLibs(dependsOn: ["copySubprojectLibsA","copySubprojectLibsB"])
另一种方法是使用 Gradle 中包含的 Ant Builder:
task copySubprojectLibs (dependsOn: subprojects.jar) << {
files(subprojects.jar).each {
ant.copy(file: it.absolutePath, todir: "build/libs/lib")
}
ant.copy(todir: "build/libs/nosr/conf") {
fileset(dir: "src/main/resources")
}
}
关于Java Gradle 在一个任务中复制 2 个不同的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508246/