在蚂蚁,我怎么用逗号名指定文件?(In Ant, how do I specify files wi

2019-10-17 19:34发布

下面是一个例子,目标,我试图。 事实证明,它希望因为逗号分隔“* * / *”和“盖”,删除一切-可以理解的。

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

如何指定嵌入式逗号?

我努力学习蚂蚁,所以我不会要保持不同的构建系统针对不同的操作系统系统。 在这种情况下,它是在Python环境,其中*,盖文件被称为代码覆盖检查工具创建的覆盖面 。

Answer 1:

你不需要逃避这一点。 只要使用<include/>而不是includes精氨酸。 尝试这个:

<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/>在我的例子一样)。 如果你会使用. 那么你将不得不使用嵌套的构建问题。 让你已经有两个imageine建立其删除文件,但第一次构建也叫第二次构建:

MAINDIR / build1.xml

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

MAINDIR /子目录/ build2.xml

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

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



Answer 2:

除非你有在盖端名称的其他文件,你不想删除,只留下逗号出来:

<fileset dir="." includes="**/*cover"></fileset>

如果你有在封面,你不想删除结束的其他文件,尝试从MattDMo的评论反斜杠建议。 您可能需要双反斜线它(“ **/*\\,cover ”)。

另一种可能性:您可以配置覆盖率把它的输出在别的目录,所以你可以删除整个目录? 或者可以将其配置为使用不同的输出文件名,这样你就没有这个问题? 我不熟悉的覆盖面,但看你提供的链接,它看起来像DATA_FILE选项可能会做一个或两个的那些东西。



文章来源: In Ant, how do I specify files with comma in filename?