【发布时间】:2019-09-28 01:11:42
【问题描述】:
使用 gradle 5.4 和来自 netbeans 项目中外部文件夹的项目依赖项。
外部文件夹包含只能由该 netbeans 项目创建的图像、xml 和自定义对象等资源。然后,这些外部资产用于创建二进制文件,这些文件由该 netbeans 项目打包到单独的 jar 中。
这些相同的外部资源也在运行时用于 gradle 项目的开发。虽然我需要在 gradle 项目中开发资源,但在使用任务构建命令时,我不需要或不希望将它们包含在任何地方的任何 jar 中,因为分发只需要二进制文件。
如何从 gradle 项目中的任何和所有 jar 文件中排除外部资源,但允许它们用于 classPath 以便我可以运行项目?
一些失败的代码示例。
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'idea'
sourceSets {
main {
resources {
srcDir '../ExternalResourceFolder/assets'
}
}
}
jar {
exclude('../ExternalResourceFolder/assets/**')
}
dependencies {
runtimeOnly files('../ExternalResourceFolder/assets')
}
jar {
exclude('../ExternalResourceFolder/assets/**')
}
distributions {
main {
contents {
exclude '../ExternalResourceFolder/assets/**'
}
}
}
尝试了更多的东西,比如添加到 classPath 和排除,但添加它们会很混乱。从 sourceSet 更改为依赖项只会将问题从“build/lib”文件夹转移到“build/distributions”文件夹。
【问题讨论】: