如何使用不同的属性值集自动化GWT构建?

时间:2012-06-16 22:57:22

标签: java gwt ant build

我需要能够使用两组不同的属性值构建两个不同版本的GWT应用程序。例如,将构建一个版本,其值custom_property设置为“A”,而另一个版本的值将custom_property设置为“B”。

目前,我正在手动编辑应用程序的模块XML文件。所以,为了制作一个版本,我首先要添加:

<set-property name="custom_property" value="A"/>

要进行其他构建,我会将此行更改为:

<set-property name="custom_property" value="B"/>

这种方法工作正常,但我想尽可能自动化。

有没有很好的方法来实现这个目标?

3 个答案:

答案 0 :(得分:4)

这样做的一个有效方法是使用Maven替换。我在许多基于GWT和非GWT的应用程序中使用了这种方法。由于Maven的流行,你会发现加载的Mavenizing你的GWT应用程序的例子。然后你可以使用Maven替换来实现所有的魔法。

答案 1 :(得分:3)

您可以克隆应用的模块XML文件,并在其中更改自定义属性的值(例如MyAppStaging.gwt.xmlMyAppProd.gwt.xml)。因此,您可以编写不同应用程序版本的构建脚本,并在IDE中具有不同的运行配置。这里的缺点是随后需要维护两个模块XML文件。

答案 2 :(得分:2)

在多个模块XML文件的@BorisBrudnoy's idea的基础上,我放置了与设置MyAppBase.gwt.xml文件中的构建之间不同的属性无关的所有模块XML。然后我创建了MyAppA.gwt.xml

<module rename-to="myappA">
  <inherits name="com.mycompany.MyAppBase"/>

  <set-property name="custom_property" value="A"/>
</module>

MyAppB.gwt.xml

<module rename-to="myappB">
  <inherits name="com.mycompany.MyAppBase"/>

  <set-property name="custom_property" value="B"/>
</module>

现在我可以在GWT编译命令行中指定com.mycompany.MyAppAcom.mycompany.MyAppB,并且没有配置复制。