我的客户需要一个更有条理的所有第三方库(例如JAR文件)的库存,这些库在项目的生产中使用。我参与了许多基于Java的项目。他们的库存在过去并没有得到一贯的维护,现在已经到了考虑当前正在使用的所有库(有很多!)并强制实施结构化流程以将新库引入构建环境的时间。
我尝试过在构建过程中使用Maven和Artifactory的想法,以利用这些工具管理二进制库存储库和处理传递库依赖关系的能力。客户拒绝接受该建议,因为他们认为这将为他们创建更多工作来维护Artifactory服务器并学习Maven的基础知识。
目前,他们的Java项目都是使用Ant脚本构建的。传递依赖主要通过反复试验来管理。目前正在使用的库的库存是手工维护的,二进制文件存储在Subversion存储库中。客户认识到这需要改进,但目前的改进建议涉及更多的临时“手工管理”方法。
我想说服客户,Maven和Artifactory的组合是他们的Java库管理需求的可行的现成解决方案。任何人都可以指导我使用我可以用来为我的客户创建Maven和Artifactory的功能和优势的文献/材料吗?
任何其他可以帮助我的论点/建议/等等也将受到赞赏。
答案 0 :(得分:8)
我想说服客户,Maven和Artifactory的组合是一种可行的现成解决方案,可满足他们的Java库管理需求。
正如评论中所指出的,您的客户不一定需要完全采用Maven来从依赖管理中受益,您可以调整现有的ant脚本以使用Maven Ant tasks或Ivy。这可能不那么可怕,已经消除了一些痛苦。
关于Maven管理依赖关系的方式,我只想解释一下:
这种依赖管理解决方案的好处是:
因为您不想依赖公共存储库,因为您需要存储自己的工件,所以需要一个企业存储库。我个人的选择是Nexus:
以下是有关Nexus的一些资源(抱歉,我只是不使用Artifactory):
以防万一,这里有一些关于Maven的演示材料: