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

时间:2011-02-13 08:23:06

标签: java ant ivy

HI,

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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