在Ant javac模式集中使用If条件

时间:2015-11-06 12:53:32

标签: ant compilation javac ant-contrib

如果属性为true或false,我想排除一些要编译的包。下面是我的蚂蚁脚本,但我收到错误:

<javac srcdir="src;src-generated" destdir="classes" debug="true" encoding="utf-8">

        <if>
            <equals arg1="${compile.csv}" arg2="false"/> 
            <then>
  <exclude name="${csv.package}"/>
      <exclude name="${excel.package}"/>
            </then>
            </if>

javac不支持嵌套的“if”元素。

提前感谢您的回答。

编辑:

我在ant build config,properties选项卡中定义了属性csv.plugin.disabled。

  <property name="csv.package" value="com/service/transfer/impl/**"/>
  <property name="excel.package" value="com/service/transfer/excel/impl/**"/>


        <javac srcdir="src;src-generated" destdir="classes" debug="true" encoding="utf-8">


      <exclude name="${csv.package}" if="${csv.plugin.disabled}"/>
          <exclude name="${excel.package}" if="${csv.plugin.disabled}"/>

我仍然将这些软件包包含在classes文件夹中。

2 个答案:

答案 0 :(得分:2)

尝试嵌套的src元素 - 您可以使用复杂的类似路径的结构(有关完整信息,请参阅Javac Task):

<src>
                <fileset dir="src" >
                    <exclude name="${csv.package}" if="${compile.csv}" />
                    <exclude name="${excel.package}" if="${csv.plugin.disabled}"/>
                </fileset>
                <fileset dir="src-generated" >
                    <exclude name="${csv.package}" if="${compile.csv}" />
                    <exclude name="${excel.package}" if="${csv.plugin.disabled}"/>
                </fileset>
</src>

答案 1 :(得分:2)

def __init__(self): super(Window, self).__init__() self.setGeometry(50, 50, 500, 300) self.setWindowTitle("PyQt test!") QtGui.QApplication.setStyle(QtGui.QStyleFactory.create("plastique")) self.home() def home(self): btn = QtGui.QPushButton("New game", self) btn.clicked.connect(self.change) btn.resize(300,25) btn.move(100, 175) txt = "Welcome to the main menu! (WIP obviously)" lbl = QtGui.QLabel(txt, self) lbl.resize(400, 100) lbl.move(50, 25) lbl.setAlignment(QtCore.Qt.AlignCenter) self.show() def change(self, txt): txt = "test" self.lbl.setText(txt) 任务可以采用条件javac元素。来自documentation

  

此任务形成一个隐式FileSet,并支持include/exclude<fileset>成为dir)的大多数属性以及嵌套srcdir<include>和{ {1}}元素。

<exclude>