如何在 ant 脚本中排除和包含任务

how to excludes and include task in ant script

我只想使用 ant 脚本复制特定的 jar 文件。这是非常容易的任务,但我无法做到这一点。我为此任务编写了以下 ant 脚本。我想排除除 aopalliance-.jar 文件之外的所有 jar 文件。但是当我 运行 这个脚本时它排除了所有的 jar 文件。有人可以更正这个脚本吗?

<?xml version="1.0" encoding="UTF-8"?>

<project default="mvcexample" name="MVCExample" basedir=".">
    <property name="web.dir" value="WebContent" />
    <property name="webinf.dir" value="WebContent/WEB-INF" />
    <property name="lib.dir" value="WebContent/WEB-INF/lib" />
    <property name="lib2.dir" value="WebContent/WEB-INF/lib2" />

    <target name="copyjar">
        <copy todir="${lib2.dir}">
            <fileset dir="${lib.dir}" excludes="**/*.jar">
                <include name="${lib.dir}/aopalliance-.jar"></include>
            </fileset>
        </copy>
    </target>

</project>

这是您需要做的:

<target name="copyjar">
    <copy todir="${lib2.dir}">
        <fileset dir="${lib.dir}">
            <!-- <include name="${lib.dir}/aopalliance-.jar"/> -->             
            <include name="aopalliance-.jar"/> <!-- Don't put the dir name! -->            
        </fileset>
    </copy>
</target>

指定目录时,只需指定该目录下的名称模式即可。您要的是罐子 ${lib.dir}/${lib.dir}/aopalliance-.jar。顺便问一下,那里某处应该有版本号吗?喜欢 aopalliance-3.4.jar?如果是这样,您需要 <include name="aopalliance-*.jar"/>.

另请注意,如果我使用 <include .../> 而不是 <include...></include>