9

ディレクトリまたはファイルが Phing に存在するかどうかを確認しようとしていますが、基本的な機能を動作させることさえできません。

例えば:

<project name="test" default="help" basedir="./">

<target name="clean" description="Deletes directory">

    <available file="/testy" type="dir" property="dir.Exists" />

        <if>
            <isset property="dir.Exists"/>
                <then>
                    <echo>Yep</echo>
                </then> 
        </if>

</target>

<phingcall target="clean" />

</project>

奇妙なエラーが発生します。

Error reading project file [wrapped: \build.xml:22:18: Error initializing nested  
element <echo> [wrapped: phing.tasks.system.IfTask doesn't support the 'echo' 
creator/adder.]]

最終的に、ディレクトリが存在する場合に続行する条件付きの yes/no を追加したいと考えました。

ps。エコーを削除しても同じエラーが送信されるため、エラーは「ネストされた要素のエコー」とは何の関係もありません。実際、これはデフォルトの構文関連のエラーメッセージか何かだと思います。

4

1 に答える 1

11

ディレクトリを削除するだけの場合は、ディレクトリに対してdeleteを呼び出します。Phingはそれが存在するかどうかを自動的にチェックするので、チェックを行う必要はありません。

<target name="clean">
    <delete
      dir="${project.basedir}/${source.directory}" quiet='true'
    />
</target>

ここでの重要な削除属性は次のとおりです。 Phing削除属性

以下は私のシステムで正常に動作します:

<target name='test'>
  <if>
    <available file='results' type='dir' />
    <then>
      <echo>Yep</echo>
    </then>
  </if>
</target>

したがって、AvailableTaskの使用方法が正しくないと思います。

于 2012-08-23T19:07:18.747 に答える