gpt4 book ai didi

java - gradle从所有jar中排除外部资源文件夹

转载 作者:行者123 更新时间:2023-12-02 05:48:27 27 4
gpt4 key购买 nike

使用 gradle 5.4 以及来自 netbeans 项目中外部文件夹的项目依赖项。

外部文件夹包含只能由该 netbeans 项目创建的资源,例如图像、xml 和自定义对象。然后,这些外部 Assets 用于创建二进制文件,这些文件由该 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”文件夹。

最佳答案

最终必须排除每种文件类型。

    sourceSets {
main {
resources {
srcDir '.'
exclude ('**/*.j3odata','**/*.mesh','**/*.skeleton',\
'**/*.mesh.xml','**/*.skeleton.xml','**/*.scene',\
'**/*.material','**/*.obj','**/*.mtl','**/*.3ds',\
'**/*.dae','**/*.blend','**/*.blend*[0-9]','**/*.bin',\
'**/*.gltf')
}
}
}

关于java - gradle从所有jar中排除外部资源文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56072293/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com