4

私はアリに奇妙な問題を抱えています。バージョンは 1.7.1 です。

私は次のことをしようとしていますが、エラーが発生します。

<target name="execute-all-buildfiles">
    <foreach param="buildfile-path" target="execute-buildfile">
        <path>
            <dirset dir="${path.to.server}/share/source"/>
        </path>
    </foreach>
</target>

<target name="execute-buildfile">
    <echo message="" />
    <echo message="" />
    <echo message="" />
    <echo message="__________ Building cartridge ${buildfile-path} ___________" />
    <echo message="" />
    <echo message="" />
    <echo message="" />
    <java
            jvm="${path.to.server}/engine/jdk/bin/java"
            classname="org.apache.tools.ant.launch.Launcher"
            fork="true"
            failonerror="true">
        <classpath>
            <pathelement location="${ant.home}/lib/ant-launcher.jar"/>
        </classpath>
        <arg value="-f" />
        <arg value="${buildfile-path}/build/build.xml" />
        <arg value="-Dis.home=${path.to.server}" />
    </java>
</target>

foreach の単純なバージョンを試してみましたが、うまくいきません。私を助けてください。

<target name="run">     
   <foreach target="loop" param="loop.param">  
      <path>
          <dirset dir="${path.to.server}/share/source"/>
      </path>
   </foreach>  
</target>  
<target name="loop">     
   <echo message="${loop.param}"/>  
   <basename property="dir.name" file="${loop.param}"/>  
   <echo message="${dir.name}"/>  
</target>  

PS 間違いすみません。シンプルなものを見てください。

4

1 に答える 1

15

「原因: 名前が未定義です」は、タスクが Ant 環境にインストールされていないことを意味します。
<foreach>バニラ ant のタスクではありませんが、ant で利用できる ant アドオンantcontribが必要です。
antcontrib をインストールしたら、<taskdef resource="net/sf/antcontrib/antlib.xml"/>すべての antcontrib タスクを有効にするために使用する必要があります。
GOTCHA => net/sf/antcontrib/antcontrib.properties には、Ant 1.6.x より前の Ant バージョンのタスクしか含まれていないため、 http:<taskdef resource="net/sf/antcontrib/antcontrib.properties"/> //ant-contrib.sourceforge.net/に記載されているように使用しないでください。

于 2013-03-11T21:52:33.263 に答える