ディレクトリに少なくとも 1 つの変更されたファイルがある場合、ディレクトリを処理する必要があります。ファイルセットを、それらのファイルを含むディレクトリの一意のリストに縮小するブロックを作成しましたが、スクリプトなしでこれを行う方法があれば、これはより簡単になると思います。
方法はありますか?
ディレクトリに少なくとも 1 つの変更されたファイルがある場合、ディレクトリを処理する必要があります。ファイルセットを、それらのファイルを含むディレクトリの一意のリストに縮小するブロックを作成しましたが、スクリプトなしでこれを行う方法があれば、これはより簡単になると思います。
方法はありますか?
コア ANT でこれを行うにはトリッキーです。
埋め込みのgroovyスクリプトを使用した例を次に示します。
<project name="demo" default="process-modified-dirs">
<path id="build.path">
<pathelement location="/path/to/groovy-all/jar/groovy-all-2.1.1.jar"/>
</path>
<fileset id="modifiedfiles" dir="src">
<modified/>
</fileset>
<target name="process-modified-dirs">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
<groovy>
dirs = project.references.modifiedfiles.collect {
new File(it.toString()).parent
}
dirs.unique().each {
ant.echo("Do something with this dir: ${it}")
}
</groovy>
</target>
</project>