我正在与另一位开发人员合作开展一个小项目。我们正在使用在公共maven存储库中都可用的库。我们有一个单模块,多模块maven项目,但每次在我们的构建服务器和开发人员机器中构建所有模块。构建服务器上可以使用构建的工件进行部署。
我们有什么理由设置maven存储库管理器吗?它将在构建机器上运行,我将不得不通过VPN连接到它,而不是直接从互联网上下载。
答案 0 :(得分:5)
运行回购经理的最佳理由是在maven对< repository>的处理过程中实现可靠的行为。声明。
如果您引用的任何依赖项或您使用的插件,或您使用的插件的依赖项,声明任何存储库,maven将开始在这些存储库中搜索所有。而且,如果它们不可靠或缓慢,那就是你的构建。虽然目前的政策是在中央禁止存储库声明,但是有很多历史的poms指向每个方向。
唯一的解决方法是设置存储库管理器并在settings.xml中将其声明为“mirrorOf”'*'。然后,在存储库管理器中放置必要的规则,仅搜索要搜索的位置。
当然,如果您有多个人想要共享快照或发布,那么您真的还需要一个回购经理。这是显而易见的原因。
如果我关闭我的repo管理器并且只是尝试构建我的一些项目,这些项目运气不好,他们的poms中包含存储库声明的插件/依赖项,那么它们就会失败。有了回购经理,一切都很好。
答案 1 :(得分:2)
如果你不得不问,可能不会 但这是一个非常便宜的约会 - Nexus设置非常简单,我不知道archiva。
公共服务器往往不可靠。 本地镜像会更快。 你不想挂断电话,因为你清理了你的本地仓库并且无法从公共场所获得一些东西。
如果您需要使用多个版本的应用,我会开始考虑更难。
答案 2 :(得分:0)
在我看来,只有当项目和从事这些项目的团队越来越多时,它才会成为一个很好的理由,特别是因为它的“版本控制”功能。
答案 3 :(得分:0)
我的回答是,一旦你需要一个jar,你将不得不创建一个自己的存储库,这个jar不在公共存储库中(不是那么难,因为例如某些JDBC驱动程序不是在公共存储库中托管的许可问题)。如果你不这样做,你将失去Maven的主要优势,你的同事不需要做任何事情来获得合适的库。如果您引入了一个新库,如果您有公司存储库,则不需要向同事说任何内容,但如果没有,则需要为它们发送库,您需要告诉他们如何在本地安装库。 / p>