gpt4 book ai didi

java - 在 Ant 中,如何指定文件名中带有逗号的文件?

转载 作者:太空宇宙 更新时间:2023-11-03 19:03:28 25 4
gpt4 key购买 nike

这是我尝试过的示例目标。事实证明,它想要删除所有内容,因为逗号分隔“**/*”和“cover”——可以理解。

<target name="clean">
<delete
verbose="true">
<fileset dir="." includes="**/*.pyo"></fileset>
<fileset dir="." includes="**/*,cover"></fileset>
</delete>
</target>

如何指定嵌入的逗号?

我正在尝试学习 Ant,这样我就不必为不同的操作系统维护不同的构建系统。在本例中,它位于 Python 环境中,其中 *,cover 文件是由名为 Coverage 的代码覆盖率检查工具创建的。 .

最佳答案

你不需要逃避这个。只需使用 <include/>而不是includes arg。试试这个:

<project name="test" default="clean">

<dirname property="build.dir" file="${ant.file.test}" />

<target name="clean">
<delete>
<fileset dir="${build.dir}/test">
<include name="**/*,*.xml" />
</fileset>
</delete>
</target>

</project>

顺便说一下。您不应该使用. (点)在你身上dir争论。如果你想删除你拥有 build.xml 的目录中的文件文件您应该传递绝对路径(为此,您可以使用 <dirname/> 就像我的示例中一样)。如果您将使用.那么你就会遇到嵌套构建的问题。让我们想象一下,您有两个删除文件的构建,但第一个构建也调用第二个构建:

maindir/build1.xml

<delete dir="." includes="**/*.txt" />
<!-- call clean target from build2.xml -->
<ant file="./subdir/build2.xml" target="clean"/>

主目录/子目录/build2.xml

<delete dir="." includes="**/*.txt" />

在这种情况下,build2.xml 不会删除子目录中的 *.txt 文件,而是删除主目录中的 *.txt 文件,因为 ant 属性将传递给 build2.xml。当然你可以使用inheritAll="false"省略这一点,但根据我的经验,我知道使用 .在路径中会给你带来很多问题。

关于java - 在 Ant 中,如何指定文件名中带有逗号的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419471/

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