【问题标题】:Manage duplicate jar files using ant and ivy使用 ant 和 ivy 管理重复的 jar 文件
【发布时间】:2011-06-26 08:57:57
【问题描述】:

嗨,

我正在使用 ant 构建脚本来构建我的 java 应用程序并利用 Ivy 来管理它的依赖关系。

由于我的应用程序是其他应用程序(主应用程序)的依赖/子集,因此在运行它时,我将类路径设置为指向主应用程序的 lib jar。

当我尝试使用 ant 和 ivy 构建工具包时,它包含/检索 ivy.xml 中指定的所有 jars

问题是,一些 jar 文件与主应用程序文件夹中的 jars 文件重复。

有没有办法在 build.xml 中设置类路径以忽略检索主应用程序的 lib 文件夹中已存在的 jar 文件。

谢谢

【问题讨论】:

    标签: java ant ivy


    【解决方案1】:

    有一种方法可以在标签中显式排除文件项,但您必须手动调用它们:

    <fileset dir="yourdir">
         <exclude name="apps/**/*Test*"/>
    </fileset>
    

    不过,您可以考虑另一种方法。听起来您正在混合依赖管理方法。这就是你有冲突的原因......你在 MainApp 的 lib 中手动设置依赖项,并在 Ivy 中指定其他依赖项。我敦促您考虑选择其中之一,并在其中进行所有依赖项管理。

    您可以通过 Ivy 发布 MainApp 的工件,并在您的子项目中使用该工件。 Ivy 将为您管理重复项。

    或者,您可以从类路径中完全删除 MainApp,并每次重新获取依赖项(Ivy 将这些依赖项缓存在本地,因此您不必重新下载它们,它只是为您在磁盘上管理它们)。

    【讨论】:

    • 同意。使用 ivy 管理所有类路径依赖项。如果您依赖另一个项目,请先将其 jars 发布到本地存储库中,然后再运行第二个构建。
    猜你喜欢
    • 2012-09-06
    • 2018-02-15
    • 2010-12-01
    • 2015-01-11
    • 2018-02-24
    • 2011-10-05
    • 2018-03-25
    • 2012-04-24
    • 1970-01-01
    相关资源
    最近更新 更多