如何使用Eclipse中的Maven从Java Properties生成JavaScript文件?

时间:2015-02-10 23:37:14

标签: javascript java eclipse maven m2e

在旧的Java Web应用程序中,属性文件中有许多用于国际化的键。 JavaScript函数也使用此键来显示一些消息。

实际上,这个文件是在HTML中内联的,在JSP上动态生成,导致每个页面请求增加大约400 KB。 为了略微提高性能,我生成了带有键值的JavaScript文件,内容如下:

var b = {
    keys: {
        "key.one": "value.one",
        "key.two": "value.two"
    }
};

JavaScript文件路径如下所示:

JavaScript files

消息属性文件位于以下目录中:

Message properties files

我需要阅读构建中的消息属性文件以创建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等)?

0 个答案:

没有答案