减少gwt编译时间?

时间:2013-09-27 12:43:49

标签: java maven gwt

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

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

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

请提供更多详细信息,以便能够实现这两个maven资料。

1 个答案:

答案 0 :(得分:0)

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

  1. 在* .gwt.xml文件中输入一条评论:
  2. <module ...>
      ...
      <!-- Speed up compilation just for Chrome and Safari on development machines by reducing permutations-->
      <!-- REPLACE -->
      ....
    </module>
    
    1. 在maven pom.xml中定义一个开发配置文件,可以通过属性手动激活(或通过明确告诉maven这样做)
    2. <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" />
      

      然后它将使用活动的user.agent属性构建工件

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

      <!-- REPLACE -->
      

      以便您的来源保持不变。