2015-11-06 96 views
0

如果屬性爲true或false,我想排除一些要編譯的包。下面是我的螞蟻腳本,但我得到錯誤:在Ant中使用If條件javac patternset

<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文件夾中。

回答

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> 
+0

會請你解釋一下?謝謝 –

2

javac任務可以採取有條件include/exclude元素。從documentation

This task forms an implicit FileSet and supports most attributes of <fileset> (dir becomes srcdir) as well as the nested <include> , <exclude> and <patternset> elements.

<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> 
+0

謝謝,我編輯了這篇文章。 –