gpt4 book ai didi

ant具有复制资源的多个源目录

转载 作者:行者123 更新时间:2023-12-04 05:31:33 25 4
gpt4 key购买 nike

考虑最小的build.xml片段,它从源代码构建jar并包括所有非Java资源:

<property name="src.dir" value="src" />

<target name="build">
<javac destdir="bin">
<src path="${src.dir}" />
</javac>
<copy includeemptydirs="false" todir="bin">
<fileset dir="${src.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
<jar destfile="dist/foo.jar" basedir="bin"/>
</target>

现在想象一下,我需要支持源目录列表:
<property name="src.dirs" value="src;src-gen" />

我如何修改上述脚本以使其实现? javac将愉快地获取目录列表,但是对于复制,我需要将字符串转换为带排除项的文件集列表,或者找到其他方式。

最佳答案

我不确定使用内置的Ant任务执行此操作的方法,但是您可以使用ant-contrib <for> task

<path id="src.path">
<pathelement location="src" />
<pathelement location="src-gen" />
</path>

<target name="build">
<javac destdir="bin">
<src refid="src.path" />
</javac>
<for param="dir">
<path refid="src.path" />
<sequential>
<copy includeemptydirs="false" todir="bin">
<fileset dir="@{dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
</sequential>
</for>
<jar destfile="dist/foo.jar" basedir="bin"/>
</target>

关于ant具有复制资源的多个源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17619009/

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