0
Gradle 2.5Gradle:排除汇编中不同的资源文件
我有几个资源包文件。其中一些我想从打包在目标jar文件中的beeing中排除,因为它们不包含尚未授权的翻译。
根据文档和例子,我发现我有这样的指令:
sourceSets {
main {
resources {
exclude 'mail/mailtext_it.properties'
}
}
}
,并断言,此指示是正确地打印出主资源的文件集解释:
processResources
{
afterEvaluate
{
println "resource files (in processResources): " + sourceSets['main'].resources.getFiles()
}
}
运行时“gradle clean assembly”中,打印出的资源集确实是我期望的(排除的文件不在那里列出),但build/resource /文件夹仍然包含文件,并且它们也存在于目标jar中。
我缺少什么?根据哪个源文件集,哪个任务负责将资源文件复制到构建目录?
只是一个猜测,我想,从源集排除文件只是让在处理资源相他们不要处理。从档案中排除它们。如果你需要从jar文件中排除它们,你需要在'jar'块中配置'exclude'块。 [这里](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html)是有用的文档。 – Opal
到目前为止,我的理解是:processResources将文件复制(并过滤)到构建目录(因为编译任务将源文件编译到构建目录中),并且jar任务从构建中挑选准备的构件(编译,过滤)目录并将它们打包成一个罐子。这张照片是错的吗? – Heri
它按照你的写法工作。不知道为什么脚本无法正确排除文件 - [demo](https://github.com/Opalo/stackoverflow/tree/master/33347557)'lol'和'lol3'文件应该包含在最终的jar文件中。 – Opal