你好,
我正在使用 ant build 脚本来构建我的 java 应用程序并利用 Ivy 来管理它的依赖性。
由于我的应用程序是其他应用程序(主应用程序)的依赖/子集,因此在运行它时,我将类路径设置为指向主应用程序的 lib jar。
当我尝试使用 ant 和 ivy 构建工具包时,它包含/检索 ivy.xml 中指定的所有必需的 jar
问题是,一些 jar 文件与主应用程序文件夹中的 jars 文件重复。
有没有办法在 build.xml 中设置类路径以忽略检索主应用程序的 lib 文件夹中已存在的 jar 文件。
谢谢
最佳答案
有一种方法可以在标记中明确排除文件项,但您必须手动调出它们:
<fileset dir="yourdir">
<exclude name="apps/**/*Test*"/>
</fileset>
不过,您可以考虑另一种方法。听起来您正在混合依赖管理方法。这就是您遇到冲突的原因......您正在 MainApp 的 lib 中手动设置依赖项,并在 Ivy 中指定其他依赖项。我敦促您考虑选择其中之一,并在其中进行所有依赖项管理。
您可以通过 Ivy 发布 MainApp 的工件,并在您的子项目中使用该工件。 Ivy 将为您管理重复项。
或者,您可以从类路径中完全删除 MainApp,并每次都重新获取依赖项(Ivy 在本地缓存这些依赖项,因此您不必重新下载它们,它只是在磁盘上为您管理它们)。
关于java - 使用 ant 和 ivy 管理重复的 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983190/