在将新版本发布到M2存储库之前使用修补库

时间:2015-11-11 20:21:32

标签: maven github open-source

这是我第一次参与修复第三方开源库。库是在github上托管的,所以我创建了一个这个库的分支,我将我的fork克隆到我的计算机并为此修复创建了功能分支(之后进行单一提交合并)这不是问题。

问题是在我执行修复之后和库作者发布修复maven存储库之前的时间。我想在我的项目中使用这个库,就像我修复这个特定的bug一样快。我目前只有一个人从事一个项目(这是我的宠物项目,真的)。但这是一个时间问题,直到我的商业工作陷入困境,我不是唯一一个从事项目工作的人。

我看到了这个问题的四个解决方案:

  • 将其发布到本地maven repo

    • 我知道该怎么做
    • CI环境中的问题
  • 在gradle中配置本地依赖

    • CI中的问题
  • 发布到公共专家

    • 在CI中工作
    • 从未做过
    • 这不是我的图书馆 - 我不想在我的作品下签名
  • 我的VPS上托管的私人Maven

    • 一直想要一个
    • 与CI合作
    • 我将不得不花一些时间阅读 - 因为我从来没有这样做过

你会怎么做?我的任何一种方法是对的,还是我应该采取完全不同的方法?

1 个答案:

答案 0 :(得分:2)

绝对选项4:"私人Maven托管在我的VPS"。

设置私有存储库管理器实际上并不困难。有几个开源存储库管理器,如ArtifactoryNexusArchiva。我个人总是使用Artifactory,所以我无法为其他人说话,但Artifactory有一个very good official guide非常好地解释了如何设置和配置它。

请注意,使用私有存储库管理器还有许多其他优点:

  • 它充当公共Maven存储库的缓存,从而避免从Internet下载每个依赖项。这在限制Internet访问的环境中特别有用。
  • 它可以托管您的项目生成的私有库,与托管公共库的方式相同。我必须处理的一个例子是Oracle JDBC驱动程序:它不公开,在每台开发人员机器上安装都很麻烦。
  • 使用它对于Maven项目是透明的:依赖性的声明方式完全相同,无论是公共工件还是内部工件。

因此,不仅使用存储库管理器对您当前的问题有好处,它还可以解决您未来的许多问题。

另外,正如你所说,其他选项非常脆弱,原因与你提到的一样。