0

ビルド ファイルをセットアップしようとしていますが、ファイル パスを示すためにプロパティでワイルドカードを使用できるかどうか知りたいです。または、この問題に取り組むためのより良い方法は何ですか?

${dirtwo}以下に示すように、各ディレクトリ/ファイルをプロパティとして手動で含めるのではなく、「foo-」で始まるすべてのファイルまたはディレクトリを解決する必要があります。

<?xml version="1.0" encoding="UTF-8"?>

<project name="core" default="build" basedir=".">
  <property name="dirone" value="path/to/dir/one" />
  <property name="dirtwo" location="path/to/dir/two/foo-*" />

  <target name="phpmd" description="Generate pmd.xml using PHPMD">
    <exec executable="phpmd">
      <arg line="${dirone},${dirtwo}
                 xml
                 codesize,design,naming,unusedcode
                 --reportfile ${basedir}/build/logs/pmd.xml" />
    </exec>
  </target>
  ...
</project>

現在、ワイルドカードを使用したりエスケープしたりしようとしても、エラーが発生します。

Buildfile: /var/www/server/project/build.xml

phpmd:
     [exec] The given file "/var/www/server/project/path/to/dir/two/foo-*" does not exist.
     [exec] Result: 1
4

1 に答える 1

2

Ant DirSetは、包含/除外パターンに対してディレクトリを照合します。以下に示すように、 Pathconvertと組み合わせることができます。

<?xml version="1.0" encoding="UTF-8"?>
<project name="core" default="build" basedir=".">
  <property name="mybase.dir" location="/path/to/your/base/dir" />
  <dirset dir="${mybase.dir}" includes="**/foo-*" id="directories" />
  <pathconvert pathsep=", " property="directory-list" refid="directories" />

  <target name="phpmd" description="Generate pmd.xml using PHPMD">
    <exec executable="phpmd">
    <arg line="${directory-list} 
               xml
               codesize,design,naming,unusedcode
               --reportfile ${basedir}/build/logs/pmd.xml" />
    </exec>
  </target>
</project>

dirsetとの結果をテストするにはpathconvert、次を使用できます。

<echo message="${directory-list}" />
于 2012-06-25T16:49:46.103 に答える