使用gradle 5.4和netbeans项目中来自外部文件夹的项目依赖项。
外部文件夹包含只能由该netbeans项目创建的资源,例如图像,xml和自定义对象。然后,这些外部资产用于创建二进制文件,该文件由该netbeans项目打包到一个单独的jar中。
这些相同的外部资源也将在运行时期间用于gradle项目中的开发。虽然我需要gradle项目中的开发资源,但是使用task build命令时,由于任何原因,我都不需要或不想将它们包含在任何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”文件夹。
答案 0 :(得分:0)
最后必须排除每种文件类型。
sourceSets {
main {
resources {
srcDir '.'
exclude ('**/*.j3odata','**/*.mesh','**/*.skeleton',\
'**/*.mesh.xml','**/*.skeleton.xml','**/*.scene',\
'**/*.material','**/*.obj','**/*.mtl','**/*.3ds',\
'**/*.dae','**/*.blend','**/*.blend*[0-9]','**/*.bin',\
'**/*.gltf')
}
}
}