使用 Maven Shade 插件找不到 ResourceBundle

问题描述

我有一个 Java 项目,我想将它放入一个带有 Shade 插件的胖 jar 中。我在其中创建了一个资源包。当我使用 IntelliJ“运行”运行项目时,一切正常,但是当我构建 fat-jar 并尝试运行它时 <div class="form-check form-switch"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckDefault"> <label class="form-check-label" for="flexSwitchCheckDefault">Original switch unchecked</label> </div> <div class="form-check form-switch"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckChecked" checked> <label class="form-check-label" for="flexSwitchCheckChecked">Original switch checked</label> </div> <div class="form-check form-switch form-switch-md"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckDefault"> <label class="form-check-label" for="flexSwitchCheckDefault">Medium switch unchecked</label> </div> <div class="form-check form-switch form-switch-md"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckChecked" checked> <label class="form-check-label" for="flexSwitchCheckChecked">Medium switch checked</label> </div> <div class="form-check form-switch form-switch-lg"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckDefault"> <label class="form-check-label" for="flexSwitchCheckDefault">Large switch unchecked</label> </div> <div class="form-check form-switch form-switch-lg"> <input class="form-check-input" type="checkBox" id="flexSwitchCheckChecked" checked> <label class="form-check-label" for="flexSwitchCheckChecked">Large switch checked</label> </div>

捆绑包在该文件夹中:

 java.util.MissingResourceException: Can't find bundle for base name lang.lang,locale de

加载包的代码

- src - main - resources - lang - lang_DE.properties - lang_EN.properties (与 intelliJ 一起运行时有效)

阴影插件

ResourceBundle.getBundle("lang.lang",propertyService.getLanguage())

我还检查了 JAR,语言文件在它们应该在的地方,所以它们应该是可见的。 我添加了第二个变压器,但我不确定这是否有必要。

解决方法

我终于找到了:它是文件名中的大写“DE”和“EN”,而较低的“de”和“en”则传递给了 getBundle。 将文件重命名为

lang_de.properties
lang_en.properties

解决了问题。

我仍然完全不知道为什么它在从 IntelliJ 开始而不是在执行胖 JAR 时有效。

仅供参考:不需要 ResourceBundleAppendingTransformer