【发布时间】:2011-06-24 22:42:24
【问题描述】:
我有一个想使用 Maven 构建的闭源项目。它依赖于两个 java 库,这些库在我能够找到的任何公共存储库中都不可用(在本例中为 libGoogleAnalytics.jar 和 FlurryAgent.jar,但该问题适用于任何闭源依赖项)。
我希望我组织中的任何人都能够使用与我用于构建应用程序的依赖项的完全相同版本来构建应用程序。这包括我的同事和我们的构建服务器。
如何管理 maven 不知道如何解决的闭源依赖项?
显然,我可以到每个人的机器上并手动执行“mvn install:install-file”以将二进制文件放入他们的 maven 存储库,但是像这样手动管理依赖项会破坏依赖项管理器的目的。
根据 maven 的 Internal Repositories 文档,我可以在某处设置存储库服务器并将二进制文件放在那里,然后所有开发人员都可以访问它。但这意味着我有一个新服务器要维护(或者至少在现有服务器上有一个新网站)。这也意味着我必须担心权限以确保外部各方无法访问存储库。这也意味着我现在必须担心备份和可用性,这样如果存储库不可用,开发人员就不会遇到问题。
如果我能以某种方式使用我们现有的 scm(在本例中为 hg,但它可能是 git 或 svn 或其他)来存储依赖项,那么所有这些问题对我来说都会消失。我们的源代码控制存储库已经备份,基本上始终可供进行构建的开发人员使用,并且已经处理了它的权限。
但我还没有弄清楚如何使用 hg 管理 maven 依赖项,如果这可能的话。
【问题讨论】:
-
检查这个问题:stackoverflow.com/questions/2588502/… 我也有类似的问题。
-
如果你正在构建一个商业产品,你应该有一个包含 all 依赖项的内部仓库,这样你的构建不依赖于外部源 - 你可以如果您的互联网连接中断,仍会创建构建。