如何使用Eclipse将字符串外部化为“资源”以用于Maven项目?

时间:2011-08-12 09:29:20

标签: java eclipse maven

我正在使用Eclipse开发Maven项目。

我尝试在Eclipse中使用externalize Strings向导。默认情况下,生成的messages.properties位于“src / main / java”文件夹中。然而,当使用Maven打包我的项目时,属性文件将从创建的jar文件中抛出。因此我尝试将message.properties移动到“src / main / resources”文件夹,但似乎Eclipse不接受它!

我宁愿不修改我的pom.xml,因为它在企业中非常标准化。那么有没有办法强制Eclipse接受“src / main / java”中的属性文件?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

我在eclipse.org上为此创建了bug 369296,并且在此过程中,我找到了解决办法。 事实证明,m2e插件(在eclipse中管理maven项目)在任何资源目录中添加了“**”的排除过滤器。此排除筛选器阻止NLS向导将该资源目录用作其源文件夹。

因此,要解决此问题,请在eclipse中编辑构建路径,并从src / main / resources文件夹中删除**排除项。然后,运行NLS向导并执行您想要执行的所有NLS-y操作。最后,让m2e重新生成项目配置 - 这将重新添加**排除。

希望这会有所帮助。看起来他们会修复我的错误。

答案 1 :(得分:1)

如果您使用的是spring,请确保在您的应用程序servlet上下文中包含:

<resources mapping="/resources/**" location="/resources/" />

在你的JSP中:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:message key="whatever.key.from.message.file" />

答案 2 :(得分:1)

在Eclipse中使用externalize Strings向导后,它将属性文件放在src / main / java中,因此将属性文件移动到src / main / resources(在eclipse中使用refactor / move或在eclipse之外)然后通过从命令行

在项目根文件夹中运行以下命令,使用maven重新创建eclipse项目文件
mvn eclipse:eclipse

然后在eclipse中清理并刷新项目。