0

我正在尝试使用 maven 配置文件来减少 gwt 项目的编译时间,以设置我想要所有排列还是只需要其中一些排列。

我在这里按照教程:http: //www.bonitasoft.org/blog/tutorial/speed-up-gwt-i18n-compilation-using-maven-profiles/

但是它没有说明如何创建两个模块(生产和开发)。这些是 application.gwt.xml 文件吗,如果是,放在哪里?如果我在同一目录中使用两个 application.gwt.xml 文件,我会不断收到编译错误。

请给我更多详细信息,以便能够实现这 2 个 Maven 配置文件。

4

1 回答 1

0

您可以做的简单事情是使用 maven replace 插件并在编译期间(对于开发配置文件)注入 user.agent 属性。

  1. 在您的 *.gwt.xml 文件中添加一条评论:
<module ...>
  ...
  <!-- Speed up compilation just for Chrome and Safari on development machines by reducing permutations-->
  <!-- REPLACE -->
  ....
</module>
  1. 在 maven pom.xml 中定义一个开发配置文件,可以通过属性手动激活(或通过明确告诉 maven 这样做)
<profiles>
    <profile>
        <id>dev-build</id>
        <activation>
            <property>
                <name>gwtUserAgent</name>
                <value>overwrite</value>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.google.code.maven-replacer-plugin</groupId>
                    <artifactId>maven-replacer-plugin</artifactId>
                    <version>1.3.5</version>
                    <executions>
                        <execution>
                            <id>devChromeGWTCompileReplace</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>replace</goal>
                            </goals>
                            <configuration>
                                <file>PATH_TO_YOUR_GWT_FILE.gwt.xml</file>
                                <replacements>
                                    <replacement>
                                        <token>&lt;!-- REPLACE --&gt;</token>
                                        <value>&lt;set-property name="user.agent" value="safari" /&gt;</value>
                                    </replacement>
                                </replacements>
                            </configuration>
                        </execution>
                        <execution>
                            <id>devChromeGWTCompileReplaceReverse</id>
                            <phase>install</phase>
                            <goals>
                                <goal>replace</goal>
                            </goals>
                            <configuration>
                                <file>PATH_TO_YOUR_GWT_FILE.gwt.xml</file>
                                <replacements>
                                    <replacement>
                                        <token>&lt;set-property name="user.agent" value="safari" /&gt;</token>
                                        <value>&lt;!-- REPLACE --&gt;</value>
                                    </replacement>
                                </replacements>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

请注意将 PATH_TO_YOUR_GWT_FILE.gwt.xml 替换为您的 GWT 文件。

当你执行时这会做什么

mvn install -DgwtUserAgent=overwrite

或者

mvn install -P dev-build

验证时(第一阶段) - 更改替换令牌

<!-- REPLACE -->

<set-property  name="user.agent" value="safari" />

然后它将使用 active user.agent 属性构建工件

最后(在安装阶段)它将放回初始令牌

<!-- REPLACE -->

使您的来源保持不变。

于 2016-04-08T12:40:50.310 回答