首页 文章

使用ant和ivy管理重复的jar文件

提问于
浏览
2

HI,

我正在使用ant构建脚本来构建我的Java应用程序并利用Ivy来管理它的依赖 .

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

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

问题是,一些jar文件与主app文件夹中的jars文件重复 .

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

谢谢

1 回答

  • 0

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

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

    不过,您可能会考虑另一种方法 . 听起来你正在混合依赖管理方法 . 这就是您遇到冲突的原因......您在MainApp的lib中手动设置依赖项,并在Ivy中指定其他依赖项 . 我建议你考虑选择其中一个,并在其中完成所有的依赖管理 .

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

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

相关问题