Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用不同的属性值集自动化GWT构建?_Java_Gwt_Ant_Build - Fatal编程技术网

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

Java 如何使用不同的属性值集自动化GWT构建?,java,gwt,ant,build,Java,Gwt,Ant,Build,我需要能够使用两组不同的属性值构建两个不同版本的GWT应用程序。例如,构建一个版本时,将自定义_属性的值设置为“A”,构建另一个版本时,将自定义_属性的值设置为“B” 目前,我正在手工编辑应用程序的模块XML文件。因此,要进行一次构建,我首先要添加: <set-property name="custom_property" value="A"/> 为了进行另一个构建,我将这一行更改为: <set-property name="custom_property" value=

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

目前,我正在手工编辑应用程序的模块XML文件。因此,要进行一次构建,我首先要添加:

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

为了进行另一个构建,我将这一行更改为:

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

这种方法可以正常工作,但如果可能的话,我想将其自动化


有什么好方法可以做到这一点吗?

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

一种强大的方法是使用Maven替换。我在许多基于GWT和非GWT的应用程序中使用过这种方法。由于Maven的流行,你会发现大量的将GWT应用程序专业化的例子。然后,您可以使用Maven替换来实现所有神奇的效果。

在多个模块XML文件的基础上,我将所有与设置不同构建的属性无关的模块XML放在一个
MyAppBase.gwt.XML
文件中。然后,我用以下代码创建了
MyAppA.gwt.xml

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

  <set-property name="custom_property" value="A"/>
</module>
<module rename-to="myappB">
  <inherits name="com.mycompany.MyAppBase"/>

  <set-property name="custom_property" value="B"/>
</module>
现在我可以在GWT编译命令行上指定
com.mycompany.MyAppA
com.mycompany.MyAppB
,并且没有配置的复制