Gradle 渐变拷贝资源,进程资源

Gradle 渐变拷贝资源,进程资源,gradle,Gradle,我正在尝试将项目文件夹中的2个文件夹复制到jar中。 使用以下设置时,Gradle会复制文件夹中的文件,而不是文件夹本身: processResources { from 'public' from 'data' } 我需要的是将文件夹“projectDir/data”复制到“my.jar/data”中。如果from中指定的路径是文件夹,Gradle中的copy规范将复制文件夹的内容 一种解决方案是在jar中使用指定目标文件夹 这将把内容或原始文件夹放入jar中同名的文件夹中。

我正在尝试将项目文件夹中的2个文件夹复制到jar中。 使用以下设置时,Gradle会复制文件夹中的文件,而不是文件夹本身:

processResources {
    from 'public'
    from 'data'
}

我需要的是将文件夹“projectDir/data”复制到“my.jar/data”中。

如果
from
中指定的路径是文件夹,Gradle中的
copy
规范将复制文件夹的内容

一种解决方案是在
jar
中使用指定目标文件夹

这将把内容或原始文件夹放入jar中同名的文件夹中。但是正如您所看到的,您需要将
中的文件夹名称重复到
闭包中

另一种解决方法是为这些资源文件夹设置一个父文件夹,并在
copy
spec中使用此父文件夹

以下是构造资源文件夹的一种方法:

<project-folder>
|
--> res
    |
    --> public
    --> data

这将根据需要在最终jar文件中创建文件夹
public
data

有一个“from”方法,它使用CopySpec进行闭包

我建议您使用它,而不是将其分解为单独的任务或重新构建布局

processResources {
    from('data') {into 'data'}
    from('publicFolder') {into 'publicFolder'}
}

是否可以说“从'projectRoot'文件夹复制,只获取'data'和'public'文件夹?”对文件夹名称使用筛选器对我来说并不正确。不过,我用一个主要的解决方案编辑了答案,它不涉及重新排列文件夹。希望有帮助。我同意理想的方法是说从“projectRoot”文件夹复制,只包括我想要的文件夹。如果我得到一个,我会发布一个解决方案。谢谢你的“从进入”解决方案。这是我一直在寻找的东西。问题是它对我不起作用。I get error“>找不到参数[build_akni020h40dn3k7vwmwbm63ee$\u run\u closure2]的方法public()_closure3@4d266391]关于根项目“我根据您的建议和收到的错误消息找到了解决方案。Gradle将这些指令视为自定义方法的名称。我编辑了您的解决方案,并将在您接受编辑或以其他方式指定工作解决方案后接受答案。谢谢!
processResources {
    from 'res'   
}
processResources {
    from('data') {into 'data'}
    from('publicFolder') {into 'publicFolder'}
}