Gradle复制资源,processResources
Gradle copy resources, processResources
我正在尝试将 2 个文件夹从我的项目文件夹复制到 jar 中。
当我使用以下设置时 Gradle 复制文件夹内的文件,而不是文件夹本身:
processResources {
from 'public'
from 'data'
}
我需要的是将文件夹 "projectDir/data" 复制到 "my.jar/data"。
如果 from
中的指定路径是文件夹,Gradle 中的 copy
规范会复制文件夹的内容。
在 jar
中指定目标文件夹
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
这会将内容或原始文件夹放入jar 中同名的文件夹中。但如您所见,您需要在 into
闭包中重复文件夹名称。
另一种解决方法是为这些资源文件夹设置一个父文件夹,并在 copy
规范中使用该父文件夹。
这是构建资源文件夹的一种方法:
<project-folder>
|
--> res
|
--> public
--> data
然后在 processResources
的 copy
规范中,您可以执行以下操作:
processResources {
from 'res'
}
这将根据需要在最终的 jar 文件中创建文件夹 public
和 data
。
有一个 'from' 方法使用 CopySpec 进行闭包。
我建议使用它,而不是分解成单独的任务或重组布局。
processResources {
from('data') {into 'data'}
from('publicFolder') {into 'publicFolder'}
}
我正在尝试将 2 个文件夹从我的项目文件夹复制到 jar 中。 当我使用以下设置时 Gradle 复制文件夹内的文件,而不是文件夹本身:
processResources {
from 'public'
from 'data'
}
我需要的是将文件夹 "projectDir/data" 复制到 "my.jar/data"。
如果 from
中的指定路径是文件夹,Gradle 中的 copy
规范会复制文件夹的内容。
jar
中指定目标文件夹
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
这会将内容或原始文件夹放入jar 中同名的文件夹中。但如您所见,您需要在 into
闭包中重复文件夹名称。
另一种解决方法是为这些资源文件夹设置一个父文件夹,并在 copy
规范中使用该父文件夹。
这是构建资源文件夹的一种方法:
<project-folder>
|
--> res
|
--> public
--> data
然后在 processResources
的 copy
规范中,您可以执行以下操作:
processResources {
from 'res'
}
这将根据需要在最终的 jar 文件中创建文件夹 public
和 data
。
有一个 'from' 方法使用 CopySpec 进行闭包。
我建议使用它,而不是分解成单独的任务或重组布局。
processResources {
from('data') {into 'data'}
from('publicFolder') {into 'publicFolder'}
}