【发布时间】:2017-03-22 09:35:11
【问题描述】:
我有一个java项目叫API,它有自己的ResourceBundle,因为它知道用户的语言,响应是根据它的语言写的。 测试工作正常,我看到消息正确写入。
当我想在另一个项目中使用 API 项目的 jar 时,我们称之为 REST_API,它没有从 API 中找到任何密钥。
REST_API 有它自己的语言键,所以最终的包文件应该有包的合并。对吧?
我正在使用 maven 来构建 jar、wars 等。 是否有任何 maven 插件可以扫描项目并合并资源包文件以使其工作?
或者我应该以不同的方式实现它?
谢谢!
更新
API 项目中的资源在:
src/main/resources/ApplicationMessages_en.properties
src/main/resources/ApplicationMessages_es.properties
以下是我如何加载捆绑包的示例:
private static final String DEFAULT_LANG = "en";
private static final Locale DEFAULT_LOCALE = new Locale(DEFAULT_LANG);
private static final ResourceBundle DEFAULT_TRANSL = ResourceBundle.getBundle("ApplicationMessages", DEFAULT_LOCALE, new UTF8Control());
【问题讨论】:
-
资源应该通过类路径加载,所以这应该不是问题?如果您使用 API 项目内部另一个项目,您是否有正确的依赖关系?你的项目看起来如何? maven pom 的?
-
我只是在 POM 文件中有一个 mvn 依赖项。像这样:
<dependency> <groupId>grId</groupId> <artifactId>prAPI</artifactId> <version>${pr.version}</version> </dependency> -
如果您对两个捆绑包使用相同的名称,那么不,它们不会被合并。将使用在类路径中找到的第一个。就像上课一样。资源包应该在包中,就像类一样。
-
好的,尼泽特。我会试试的。 bundle的包在src/main/resources文件夹里吧?
-
尼泽,这行得通。谢谢!
标签: java maven internationalization resourcebundle