gpt4 book ai didi

Java Gradle 在一个任务中复制 2 个不同的文件夹

转载 作者:行者123 更新时间:2023-11-30 10:38:54 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com