我需要能够使用两组不同的属性值构建两个不同版本的GWT应用程序。例如,将构建一个版本,其值custom_property
设置为“A”,而另一个版本的值将custom_property
设置为“B”。
目前,我正在手动编辑应用程序的模块XML文件。所以,为了制作一个版本,我首先要添加:
<set-property name="custom_property" value="A"/>
要进行其他构建,我会将此行更改为:
<set-property name="custom_property" value="B"/>
这种方法工作正常,但我想尽可能自动化。
有没有很好的方法来实现这个目标?
答案 0 :(得分:4)
这样做的一个有效方法是使用Maven替换。我在许多基于GWT和非GWT的应用程序中使用了这种方法。由于Maven的流行,你会发现加载的Mavenizing你的GWT应用程序的例子。然后你可以使用Maven替换来实现所有的魔法。
答案 1 :(得分:3)
您可以克隆应用的模块XML文件,并在其中更改自定义属性的值(例如MyAppStaging.gwt.xml
和MyAppProd.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.MyAppA
或com.mycompany.MyAppB
,并且没有配置复制。