从ant类路径中排除jar

时间:2012-04-18 08:25:04

标签: java maven ant classpath

我正在尝试在一些使用ant脚本的遗留项目上设置“干净的maven”。我对蚂蚁知之甚少,所以我的问题似乎很天真。

我差不多完成了,但是由于类路径中的冗余,传递ant脚本失败了。如果我理解构建,那些行应该添加到“提供”范围中的每个lib的类路径中:

<artifact:dependencies pathid="dependency.classpath" scopes="provided">
    <pom file="./pom.xml"/>
</artifact:dependencies>

然后是这个:

<path id="completecp">
    <fileset dir="${ant.home}/lib">
        <include name="*.jar" />
    </fileset>
    <path refid="dependency.classpath" />
</path>

将这些依赖项添加到ant.home目录中的libs。

麻烦的是,我正在使用依赖于我无法修改的父pom的maven pom,因此,我的类路径中有三个不同版本的Ant:两个来自POM(1.5 et 1.7.1)和Eclipse中的一个(1.8.2)。我曾经(拼命地!)添加了一些maven排除,但是失败了。

所以我想:也许有一种方法可以从Ant类路径中排除jar。我试过放:

<exclude name="*ant\1.7.1\ant-1.7.1.jar"/>
<exclude name="*ant\1.5\ant-1.5.jar"/>

在文件集部分,但它不起作用。有没有办法排除那些多余的罐子?

2 个答案:

答案 0 :(得分:2)

尝试这种方式: -

<exclude name="**/ant/1.7.1/ant-1.7.1.jar"/>
<exclude name="**/ant/1.5/ant-1.5.jar"/> 

答案 1 :(得分:0)

尝试使用正斜杠而不是反斜杠,即

<exclude name="*ant/1.7.1/ant-1.7.1.jar"/>