2012-04-18 137 views
2

我试图在一些使用ant脚本的遗留项目上设置“clean maven”安装程序。我对蚂蚁不太了解,所以我的问题可能显得天真。从蚂蚁类路径中排除jar

我差不多完成了,但由于类路径中存在冗余,交付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> 

添加这些依赖于库中的蚂蚁.home目录。

问题是,我使用的是一个依赖父pom的maven pom,我无法修改,因此,在我的classpath中有三个不同版本的Ant:两个来自POM( 1.5和1.7.1)和一个来自Eclipse(1.8.2)。我试过(拼命!)添加一些maven排除,但失败惨败。

所以我想:也许有一种从蚂蚁类路径中排除jar的方法。我试过了:

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

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

回答

2

试试这个方法: -

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

嗯,它并没有解决我所有的问题,但它在类路径中除掉了那些jar!非常感谢 ! – Raveline 2012-04-18 09:01:04

0

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

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

+0

尝试过,但它没有工作,老蚂蚁仍在类路径。 – Raveline 2012-04-18 08:41:09