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

时间:2015-01-29 18:52:25

标签: ant

我想使用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>

1 个答案:

答案 0 :(得分:0)

以下是您需要做的事情:

<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>