【问题标题】:How to externalize Strings to "resources" with Eclipse for a Maven project?如何使用 Eclipse 将字符串外部化为 Maven 项目的“资源”?
【发布时间】:2011-08-12 09:29:20
【问题描述】:

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

我尝试在 Eclipse 中使用外部化字符串向导。默认情况下,生成的messages.properties 放置在“src/main/java”文件夹中。然而,当使用 Maven 打包我的项目时,属性文件会从创建的 jar 文件中丢弃。因此我尝试将 message.properties 移动到“src/main/resources”文件夹,但似乎 Eclipse 不接受!

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

感谢您的帮助。

【问题讨论】:

  • 你是否像之前在 src/main/java 中一样在 src/main/resources 中创建了合适的包结构?
  • 是的,我尝试将它放在我创建的特定包中,并且我还尝试将它放在资源文件夹的根目录中。这些都不起作用!
  • 我在src/main/resources 中设置了messages.properties 文件,我的项目运行良好。你在用 Spring 吗?
  • 部分否/是,但我会摆脱它..
  • 我没有使用 Spring...我更多的是在寻找绕过 Eclipse 向导的方法,或者我错过了一些东西。

标签: java eclipse maven


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如果您使用的是 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" />
    

    【讨论】:

      【解决方案3】:

      在 Eclipse 中使用 externalize Strings 向导后,它会将属性文件放在 src/main/java 中,因此将属性文件移动到 src/main/resources(在 eclipse 中使用重构/移动或在 eclipse 之外),然后通过从命令行在项目根文件夹中运行以下命令,使用 maven 重新创建 eclipse 项目文件

      mvn eclipse:eclipse
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-14
        • 1970-01-01
        相关资源
        最近更新 更多