我在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个不同的文件夹中?在一个任务或两个任务中,这些东西也不能在两个任务中工作。但简单的复制在一行和一个任务工作。如何在一项任务中完成?这是一个简单的问题,为什么要这么狡猾呢?
答案 0 :(得分:1)
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")
}
}