开发时,我将user.agent
属性设置为单个值,以缩短编译时间。发布时,我有一个为所有用户代理构建的WAR文件。
我很遗憾似乎忘记了切换属性:
我想自动执行此操作,最好使用maven-release-plugin。
答案 0 :(得分:7)
您希望拥有2个不同的.gwt.xml文件 - 一个用于开发,一个用于生产。
Developer Guide/Organizing projects的'重命名模块'部分有一个很好的例子。
用于开发的gwt.xml文件将继承自用于生产的gwt.xml文件,并设置user.agent属性。 e.g:
<module rename-to="com.foo.MyModule">
<inherits name="com.foo.MyModule" />
<set-property name="user.agent" value="ie6" />
</module>
现在,在进行开发时,您将使用开发gwt.xml文件,以及进行生产构建时。你会使用生产gwt.xml文件。
使用Maven实现此目的的最简单方法是使用配置文件激活开发模块。我已经在Maven Recipe : GWT development profile详细介绍了这一点。
答案 1 :(得分:2)
创建一个MavenFilteredUserAgent模块,用于从pom.xml中的各种配置文件设置user.agent
。
<强> MavenFilteredUserAgent.gwt.xml 强>
...
<set-property name="user.agent" value="${gwt.compile.user.agent}" />
...
<强>的pom.xml 强>
...
<properties>
<!-- By default we still want all five rendering engines when none of the following profiles is explicitly specified -->
<gwt.compile.user.agent>ie6,ie8,gecko,gecko1_8,safari,opera</gwt.compile.user.agent>
</properties>
<profiles>
<profile>
<id>gwt-firefox</id>
<properties>
<gwt.compile.user.agent>gecko1_8</gwt.compile.user.agent>
</properties>
</profile>
</profiles>
<!-- Add additional profiles for the browsers you want to singly support -->
....
<build>
<resources>
<resource>
<!-- Put the filtered source files into a directory that later gets added to the build path -->
<directory>src/main/java-filtered</directory>
<filtering>true</filtering>
<targetPath>${project.build.directory}/filtered-sources/java</targetPath>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<plugins>
...
<plugin>
<!-- Add the filtered sources directory to the build path-->
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/filtered-sources/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
让所有模块继承MavenFilteredUserAgent模块。
然后你可以像这样构建firefox。
mvn install -Pgwt-firefox