在旧的Java Web应用程序中,属性文件中有许多用于国际化的键。 JavaScript函数也使用此键来显示一些消息。
实际上,这个文件是在HTML中内联的,在JSP上动态生成,导致每个页面请求增加大约400 KB。 为了略微提高性能,我生成了带有键值的JavaScript文件,内容如下:
var b = {
keys: {
"key.one": "value.one",
"key.two": "value.two"
}
};
JavaScript文件路径如下所示:
消息属性文件位于以下目录中:
我需要阅读构建中的消息属性文件以创建JavaScript文件。
为此,我使用exec-maven-plugin
,设置方式如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<arguments>
<argument>${project.build.directory}/${project.build.finalName}</argument>
</arguments>
<mainClass>com.brunocesar.build.GenerateI18NJSFiles</mainClass>
</configuration>
</plugin>
GenerateI18NJSFiles
读取属性文件并生成JavaScript文件,但仅在运行maven build时(例如:mvn clean compile war:exploded
)。
我还需要在Eclipse中生成它们。
所以,我设置了这样的Eclipse lifecycle-mapping
插件:
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<versionRange>[${exec-maven-plugin.version},)</versionRange>
<goals>
<goal>java</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
但它仍然没有在Eclipse构建中生成文件,只能由Maven生成。
是否有办法设置Eclipse(可能在m2e-wtp
中,可能使用另一个插件)来生成文件并部署在容器中(例如JBoss,Tomcat等)?