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



如果属性为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构建配置的属性选项卡.中定义了属性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文件夹中。

尝试嵌套的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>

javac任务可以采用条件include/exclude元素。来自文件:

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

<javac srcdir="src;src-generated" destdir="classes" debug="true" encoding="utf-8">
    <exclude name="${csv.package}" unless="${compile.csv}" />
    <exclude name="${excel.package}" unless="${compile.csv}" />
</javac>

最新更新