gpt4 book ai didi

ant - 如何在 ant macrodef 中使用文件集

转载 作者:行者123 更新时间:2023-12-04 02:02:55 27 4
gpt4 key购买 nike

我想使用下面 macrodef 中的文件集。

我想把属性jar改成dir,这样dir中的所有jar文件都可以处理。

<macrodef name="unjartemp">
<attribute name="jar" />
<sequential>
<!-- Remove any existing signatures from a JAR file. -->
<tempfile prefix="unjar-"
destdir="${java.io.tmpdir}" property="temp.file" />
<echo message="Removing signatures from JAR: @{jar}" />
<mkdir dir="${temp.file}" />
<unjar src="@{jar}" dest="${temp.file}" />
<delete file="@{jar}" failonerror="true" />
</sequential>
</macrodef>

最佳答案

为了保持灵 active ,您可以将 macrodef 与嵌套元素属性一起用于 1-n 文件集,f.e.
以 xml 格式为嵌套文件集创建目录列表的宏定义:

<macrodef name="dir2xml">
<attribute name="file"
description="xmlfile for filelisting"/>
<attribute name="roottag"
description="xml root tag"/>
<attribute name="entrytag"
description="xml tag for entry"/>
<element name="fs"
description="nested filesets for listing"/>
<sequential>
<pathconvert
property="files.xml"
dirsep="/"
pathsep="&lt;/@{entrytag}&gt;${line.separator} &lt;@{entrytag}&gt;"
>
<!-- 1-n nested fileset(s) -->
<fs/>
</pathconvert>
<!-- create xmlfile -->
<echo message="&lt;@{roottag}&gt;${line.separator} &lt;@{entrytag}&gt;${files.xml}&lt;/@{entrytag}&gt;${line.separator}&lt;/@{roottag}&gt;" file="@{file}"/>
</sequential>
</macrodef>

用法:

<dir2xml file="filelistant.xml" entrytag="antfile" roottag="antfilelist">
<fs>
<fileset dir="." includes="**/*.xml"/>
<fileset dir="../ant_xml" includes="**/*.xml"/>
</fs>
</dir2xml>

关于ant - 如何在 ant macrodef 中使用文件集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18009637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com