하나의 옵션은 xslt 작업을 사용하여 과도한 작업을 수행하는 것입니다. 예를 들어, 두 번째 ant 스크립트를 생성하고 호출합니다.
의 build.xml :
다음 XSLT 작업에서
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="text()"/>
<xsl:template match="root">
<project><xsl:text> </xsl:text>
<xsl:apply-templates/>
</project>
</xsl:template>
<xsl:template match="*">
<mkdir>
<xsl:attribute name="dir">
<xsl:for-each select="ancestor::*">
<xsl:if test="position() != 1">
<xsl:value-of select="name()"/>
<xsl:text>/</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:value-of select="name()"/>
</xsl:attribute>
</mkdir><xsl:text> </xsl:text>
<xsl:apply-templates/>
</xsl:template>
</xsl:transform>
예 mkdir.build.xml 출력 : build.xml 파일로서 동일한 디렉토리에
<project default="mkdirs">
<target name="mkdirs">
<xslt style="mkdir.xslt" in="dirs.xml" out="mkdir.build.xml"/>
<ant antfile="mkdir.build.xml"/>
</target>
</project>
장소 mkdir.xslt
<?xml version="1.0" encoding="UTF-8"?><project>
<mkdir dir="folder1"/>
<mkdir dir="folder1/folder1-1"/>
<mkdir dir="folder2"/>
<mkdir dir="folder3"/>
<mkdir dir="folder3/folder3-1"/>
</project>
저는 XSLT에 익숙하지 않아 for-each 루프를 개선 할 수 있습니다.
감사합니다. 저건 완벽 해. – Undistraction