我有一个想使用 Maven 构建的闭源项目。它依赖于两个 java 库,这些库在我能够找到的任何公共存储库中都不可用(在本例中为 libGoogleAnalytics.jar 和 FlurryAgent.jar,但该问题适用于任何闭源依赖项)。
我希望我组织中的任何人都能够使用与我用于构建应用程序的依赖项的完全相同版本来构建应用程序。这包括我的同事和我们的构建服务器。
如何管理 maven 不知道如何解决的闭源依赖项?
显然,我可以到每个人的机器上手动执行“mvn install:install-file”来将二进制文件放入他们的 maven 存储库,但是像这样手动管理依赖项会破坏依赖项管理器的目的。
根据 maven 的Internal Repositories文档,我可以在某个地方设置一个存储库服务器并将二进制文件放在那里,然后所有开发人员都可以访问它。但这意味着我要维护一个新服务器(或至少在现有服务器上建立一个新网站)。这也意味着我必须担心权限以确保外部各方无法访问存储库。这也意味着我现在必须担心备份和可用性,这样如果存储库不可用,开发人员就不会遇到问题。
如果我能以某种方式使用我们现有的 scm(在这种情况下是 hg,但它可能是 git 或 svn 或其他)来存储依赖项,那么所有这些问题对我来说都会消失。我们的源代码控制存储库已经备份,基本上总是可供开发人员使用,并且已经处理了它的权限。
但是我还没有弄清楚如何使用 hg 管理 maven 依赖项,如果这可能的话。