首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >copy不支持Ant-contrib嵌套循环中的嵌套"if“元素

copy不支持Ant-contrib嵌套循环中的嵌套"if“元素
EN

Stack Overflow用户
提问于 2013-10-03 16:52:42
回答 2查看 2.3K关注 0票数 0

如果dml.sql文件存在,我需要将所有DML.sql文件复制到DB2_List.txt文件内部。但是在执行这个文件后,我得到了这样的错误: copy不支持嵌套的"if“元素。

如果你对Ant中的嵌套循环有更好的想法,请告诉我。

代码语言:javascript
复制
<available file="DB/DML.sql" property="db.check.present"/>
<copy file="DB/DDL.sql" tofile="DB2/DB2_List.txt" >
<if> 
 <equals arg1="${db.check.present}" arg2="true"/>
 <then> 
 <filterchain> 
    <concatfilter append="DB/DML.sql" /> 
    <tokenfilter delimoutput="${line.separator}" /> 
</filterchain> 
</then> 
</if> 
</copy>
EN

回答 2

Stack Overflow用户

发布于 2013-10-03 21:20:55

实现你想要的东西是可能的,你只需要在Ant中以完全不同的方式来实现它。只需注意,您将需要使用单独的目标。

代码语言:javascript
复制
<target name="db.check">
  <available file="DB/DML.sql" property="db.check.present"/>
</target>
<target name="db.copy" depends="db.check" if="db.check.present">
  <copy file="DB/DDL.sql" tofile="DB2/DB2_List.txt" >
    <filterchain> 
      <concatfilter append="DB/DML.sql" /> 
      <tokenfilter delimoutput="${line.separator}" /> 
    </filterchain> 
  </copy>
</target>
票数 3
EN

Stack Overflow用户

发布于 2013-10-03 22:52:48

看看Ant1.9.1,它支持标签上的特殊if/unless属性。这个可能会

代码语言:javascript
复制
 <project name="mysterious.moe" basedir="."  default="package"
    xmlns:if="ant:if"
    xmlns:unless="ant:unless"/>

    <target name="db.copy">
        <available file="DB/DML.sql" property="db.check.present"/>
        <copy file="DB/DDL.sql" 
            tofile="DB2/DB2_List.txt">
            <filterchain if:true="db.ceck.present"> 
                <concatfilter append="DB/DML.sql" /> 
                <tokenfilter delimoutput="${line.separator}" /> 
            </filterchain> 
       </copy>
    <target>
...
</project>

否则,您将不得不使用两个单独的副本。你不能把<if> antcontrib放在任务里面。仅限于围绕任务:

代码语言:javascript
复制
<available file="DB/DML.sql" property="db.check.present"/>
<if> 
    <equals arg1="${db.check.present}" arg2="true"/>
    <then> 
        <copy file="DB/DDL.sql" tofile="DB2/DB2_List.txt" >
            <filterchain> 
                <concatfilter append="DB/DML.sql" /> 
                <tokenfilter delimoutput="${line.separator}" /> 
            </filterchain>
        </copy>
        </then>
        <else>
            <copy file="DB/DDL.sql" tofile="DB2/DB2_List.txt" >
        </else>
    </if> 
</copy>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19154814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档