【发布时间】:2014-04-12 14:39:12
【问题描述】:
我有一个 GWT maven webapp 项目,它曾经由一个模块组成。由于需求演变,我需要将一些代码提取到单独的模块中,以使它们可重用。到目前为止,这个过程进展顺利,直到我决定提取本地化代码以便在另一个项目中使用它。
我所拥有的是MyAppConstants 和MyAppMessages 与相应的.properties 文件的接口,这些文件通过GWT.create() 在客户端代码中使用。我将它们移到单独的模块中,添加了Localization.gwt.xml 文件并在pom.xml 中指定了以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<configuration>
<module>com.myapp.Localization</module>
<!-- Do not compile source files, just check them -->
<validateOnly>true</validateOnly>
<!-- i18n -->
<i18nConstantsBundle>com.myapp.client.MyAppConstants_ru</i18nConstantsBundle>
<i18nMessagesBundle>com.myapp.client.MyAppMessages_ru</i18nMessagesBundle>
</configuration>
<executions>
<execution>
<goals>
<goal>i18n</goal>
<goal>resources</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
在主应用程序模块中,我只是继承了Localization.gwt.xml。作为编译的结果,我可以看到.cache.html 文件不包含它们曾经拥有的本地化常量和消息(它们看起来像\u0410\u043B...)。我想这是因为 GWT 编译器在成功执行 maven 插件的i18n 阶段后通常驻留的.generated 文件夹中看不到源文件(例如,com.myapp.client.MyAppConstants_ru.java)。相反,它们可以在 localization.jar 中找到。
我觉得我遗漏了一些东西,因为这似乎不是一个很重要的任务。处理这种情况的正确方法是什么?
【问题讨论】:
标签: java maven gwt internationalization