至少可以说,蚂蚁依赖管理并不是很好。但是,有希望吗?现在有更好的构建或项目管理选择,如maven、ivy,但我被一堆相互依赖的ant项目所困,所以我想知道是否有管理依赖项的"ant最佳实践“。
特别是在我的例子中,我有:
w.war
a.jar
b.jar
c.jarw.war是我部署到web服务器的war文件。在war文件中,我使用了a.jar。a.jar依赖于b.jar,所以我也很高兴地将b.jar打包到w中……还可以,直到..。当b.jar依赖于c.jar时,问题就开始了。a.jar的作者知道它对b.jar的依赖,所以它可以将b.jar打包到w.war中,但它不知道b.jar对c.jar的依赖。此外,b.jar的作者可以在以后添加更多的依赖项,例如"b.jar依赖于e.jar",因此a.jar的作者没有机会在这些依赖项相加时遵循这些依赖项。
我想要的是定义"a依赖于b“和"b依赖于c”(在不同的build.xml文件中),并使用ant magic将它们编译成w.war。这有可能吗?如果没有,有没有最佳实践?
我就是这样--几乎就是用maven重写,但是工作量很大……蚂蚁还有希望吗?
发布于 2009-07-07 11:32:44
如果您已经在使用Ant,那么最好的选择就是使用Ivy进行依赖项管理。
http://ant.apache.org/ivy/
它为依赖操作提供了丰富的ant任务集。
发布于 2009-07-07 11:52:56
只是为了让你的幻想破灭:依赖项管理与构建系统相结合是很难的!除非你有一个非常简单的例子,否则这不是轻而易举的事情,你必须投入一些工作。
如果你想或者不得不使用Ant,Ivy绝对是个不错的选择。作为Ant的一个正式子项目,它的集成比较顺利。
发布于 2009-07-09 07:29:34
我使用Ivy已经有4年了(早在它加入Apache之前),没有任何遗憾。
如果不太了解Ant文件,就很难给出一个明确的答案,但我猜这些项目是一次性构建的。这意味着他们不能单独将其工件(或jar文件)发布到中央存储库。
解决方案是同时使用中央存储库(用于通用库)和本地存储库(用于您的项目)。您可以查看我的公共项目,特别是ivysettings.xml文件,因为它们使用的正是这一原则。
https://stackoverflow.com/questions/1091827
复制相似问题