【问题标题】:Exclude jar from ant classpath从 ant 类路径中排除 jar
【发布时间】:2012-04-18 08:25:03
【问题描述】:

我正在尝试在一些使用 ant 脚本的遗留项目上进行“干净的 maven”设置。我对蚂蚁了解不多,所以我的问题可能看起来很幼稚。

我快完成了,但是由于类路径中的冗余,交付 ant 脚本失败了。如果我理解构建,这些行应该添加到“提供”范围内的每个库的类路径:

<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 目录中的库中。

问题是,我正在使用一个依赖于我无法修改的父 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"/>

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

【问题讨论】:

    标签: java maven ant classpath


    【解决方案1】:

    试试这个方法:-

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

    【讨论】:

    • 好吧,它并没有解决我所有的问题,但它摆脱了类路径中的那些 jar!非常感谢!
    【解决方案2】:

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

    &lt;exclude name="*ant/1.7.1/ant-1.7.1.jar"/&gt;

    【讨论】:

    • 试过了,还是不行,老蚂蚁还在classpath里。
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多