gpt4 book ai didi

java - 在 Gradle 构建 JAR 中多次包含具有不同名称的文件

转载 作者:行者123 更新时间:2023-12-01 11:57:14 26 4
gpt4 key购买 nike

我使用 Java 插件提供的标准资源处理来处理最终 JAR 中包含的 Java 资源包。文件结构如下:

src
└── main
├── java
└── resources
├── com
│   └── example
│   └── lang
│ ├── localization.properties
│   └── localization_en.properties
└── folder-with-unrelated-resources

由于自动资源加载的性质,我需要两次包含英文文件:作为标准英文文件 (localization_en.properties) 和作为提供后备的基本文件,如果未找到更具体的本地化 (localization.properties)。目前,这两个文件都存在于资源目录中,尽管它们的内容完全相同。

我正在寻找一种方法,让 Gradle 复制当前的 localization_en.properties 并将其包含在基本名称中,因此我不需要在资源目录中放置两个单独的文件。我假设我需要 Hook ProcessResources 任务,但我不知道如何创建 localization_en.properties 文件的副本并将其添加到已处理的资源中。

最佳答案

以下是使用 gradle 复制资源的方法:

task copyLocalizations(type: Copy) {
from('src/main/resources')
into(sourceSets.main.output.resourcesDir)
include('localization.properties')
rename('localization.properties', 'localization_en.properties')
}

processResources.dependsOn(copyLocalizations)

但我认为有一个更好的方法来克服 JVM 默认值 -> 以编程方式设置默认区域设置(例如设置为 ROOT 区域设置):

Locale.setDefault(Locale.ROOT);

因此,您的应用程序将独立于环境配置(并且通常更强大)。

关于java - 在 Gradle 构建 JAR 中多次包含具有不同名称的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357823/

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