16

antビルドの実行中に次のようになります:

Build\build.xml:247: Problem: failed to create task or type
for
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

build.xml の 247 行目は<for param="file">

すでに定義され<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>ていますが、機能しませんでした。次に、具体的に以下を追加しましたが、まだ機能していません。

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="${env.ANT_HOME}/lib/ant-contrib-1.0b3.jar"/>
        </classpath>
    </taskdef>

C:\Softwares\apache-ant-1.8.4\libディレクトリにant-contrib-1.0b3.jarがあります。ここに何が欠けていますか?

4

2 に答える 2

38

AntContrib jar を$ANT_HOME/lib ディレクトリに配置した場合、本当に必要なことは次のとおりです。

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

実際に<for/>タスクを使用するには、これを行う必要があります。

<taskdef resource="net/sf/antcontrib/antlib.xml"/>

antlib.xmlではなくを使用する必要があることに注意してくださいantcontrib.propertiesインストール手順をよくお読みください。見逃すのは簡単です。

グループ プロジェクトでこれを行っている場合は、プロジェクトに ant-contrib.jar を配置することをお勧めします。次に、それらをバージョン管理システムのプロジェクトに追加します。そうすれば、他の開発者は、ant-contrib jar をダウンロードして $ANT_HOME ディレクトリにインストールしなくても、ant-contrib タスクでビルドを使用できます。

というディレクトリを作成しant-contrib.dirてプロジェクトのルートに配置し、ant-contrib jar をそのフォルダに配置するとします。これをプロジェクトに入れるだけです:

<taskdef resource="net/sf/antcontrib/antlib.xml">
    <classpath>
          <fileset dir="${basedir}/ant-contrib.dir"/>
    </classpath>
</taskdef>
于 2012-09-13T14:54:41.910 に答える
2

Ant は依存関係を認識する必要があります。以下は、David Wの回答のより簡潔なバージョンです。以下に相当するものを ant プロジェクトに追加します。

<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="relative/path/to/ant-contrib-1.0b3.jar"/>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="relative/path/to/ant-contrib-1.0b3.jar"/>
于 2016-11-23T14:25:57.970 に答える