【问题标题】:Using If condition in Ant javac patternset在 Ant javac 模式集中使用 If 条件
【发布时间】:2015-11-06 12:53:32
【问题描述】:

如果某个属性是 true 或 false,我想排除一些要编译的包。以下是我的 ant 脚本,但出现错误:

<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}"/>

类文件夹中仍然包含这些包。

【问题讨论】:

    标签: ant compilation javac ant-contrib


    【解决方案1】:

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

    【讨论】:

    • 请您解释一下如何?谢谢
    【解决方案2】:

    javac 任务可以采用有条件的include/exclude 元素。来自documentation

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-08
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多