0
我使用由java插件提供的标准资源处理来处理包含在最终JAR中的Java资源包。文件结构如下:在Gradle构建的JAR中多次使用不同名称包含文件
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
并将其与基本名称一起包含的方式,因此我不需要在资源目录中有两个分开的文件。我假设我需要钩入ProcessResources
任务,但我不知道如何创建localization_en.properties
文件的副本并将其添加到已处理的资源中。
看起来你根本不需要语言/语言环境特定变体。如果两个文件都相同,只需使用默认文件(localization.properties)即可。添加更多特定变体当且仅当您需要它们时。 – fateddy 2015-02-06 05:52:48
@fateddy不需要两者,因为Java的包查找也考虑到了JVM的语言环境。例如。 “localization_de.properties”和“localization.properties”(英文)都存在。 JVM的语言环境是'de_DE',并且请求'en_US'的包。 Java找不到它,但它可以找到与JVM默认语言环境匹配的包,以便在返回到基础之前使用它。 – thee 2015-02-06 10:16:36