我有一个GWT maven webapp项目,它曾经由单个模块组成。作为需求演化的结果,我需要将一些代码提取到单独的模块中以使它们可重用。到目前为止,这个过程进展顺利,直到我决定提取本地化代码以便在另一个项目中使用它。GWT多模块项目中的本地化
我有什么是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
文件夹中没有看到源文件(f.e.,com.myapp.client.MyAppConstants_ru.java
),通常它们驻留在该文件夹中。相反,它们可以在localization.jar
中找到。
我觉得我错过了一些东西,因为这看起来不是一个不平凡的任务来解决。处理这种情况的正确方法是什么?