2011-08-12 57 views
2

我使用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」中取出?

感謝您的幫助。

+0

您是否在src/main/java中像以前一樣在src/main/resources中創建了適當的包結構? – khmarbaise

+0

是的,我試圖把它放在我創建的特定包中,我也嘗試將它放在資源文件夾的根目錄下。這些都沒有工作! –

+0

我有'src/main/resources'中的messages.properties文件設置,我的項目工作得很好。你在使用Spring嗎? – Ali

回答

1

如果使用的是春天,請確保您的應用程序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" /> 
1

在您使用Externalize Strings嚮導在Eclipse中,它將屬性文件放在src/main/java中,因此將屬性文件移動到src/main/resources(在eclipse中使用重構/移動或eclipse外部),然後使用maven通過在項目中運行以下內容來重新創建eclipse項目文件根文件夾從命令行

mvn eclipse:eclipse 

然後清理並刷新eclipse中的項目。

2

我在eclipse.org爲此創建了bug 369296,並且在此過程中,我找到了解決方法。 事實證明,m2e插件(它管理eclipse中的maven項目)添加了一個「**」的排除過濾器到任何資源目錄。此排除篩選器可防止NLS嚮導將該資源目錄用作其源文件夾。

因此,要解決此問題,請在eclipse中編輯構建路徑,並從src/main/resources文件夾中刪除**排除項。然後,運行NLS嚮導並執行所有您想要執行的NLS-Y操作。最後,讓m2e重新生成項目配置 - 這將重新添加**排除。

希望這會有所幫助。看起來他們正在修復我的錯誤。

相關問題