如何在git项目中包含库jar

时间:2015-04-02 16:29:06

标签: java git maven jar

我们有一组核心库,发布为jar个文件,用于多个客户端项目。库项目和客户端项目都在我们的git服务器(GitLab EE)上。有时客户和第三方(例如分包商)可以访问项目源代码,但我们不希望他们访问核心Java库的源代码。

所以我需要知道的是如何在git中设置某种依赖或类似的东西,以便我们可以自动引入最新版本的库文件?我一直在关注git submodule,但看起来它会吸引或者至少可以访问图书馆项目的完整来源。我也开始关注Maven,但我不清楚是否还需要访问整个存储库。还有其他/更好的方法吗?或者Maven真的会做我想要的吗?或者我是否需要在其他地方发布我的jar文件,如果是这样,我如何自动执行该过程,因为我不想在每次更新时手动复制jar文件(这是常)?

1 个答案:

答案 0 :(得分:1)

Maven和像Nexus这样的二进制存储库是执行您所要求的常用方法。 Nexus存储二进制文件,如.jar的.dll等,Maven有能力发布和检索这些二进制文件的特定版本,并在构建项目时包含它们。正如Ryan评论的那样,Maven Central是一个公共二进制存储库,如果您希望全世界都能访问您的.jars,您可以将其发布到该存储库,但使用Nexus,您可以对二进制文件进行细粒度的访问控制。

如果您使用Maven构建自己的项目,则可以使用单个命令mvn deploy将其配置为构建,测试和发布到Nexus存储库。然后客户只需要更新他们的项目以指向新版本,Maven将下载它并在类路径上使用它。这一切都非常无缝,我肯定会建议重构你的构建过程以使用Maven或类似的产品。