如何在 git 项目中包含库 jar
How to include library jar in git project
我们有一组核心 java 库,发布为 jar
文件,用于多个客户端项目。库项目和客户端项目都在我们的 git 服务器 (GitLab EE) 上。有时客户和第三方(如分包商)可以访问项目源代码,但我们不希望他们访问核心 java 库的源代码。
所以我需要知道的是如何在git中设置某种依赖或类似的东西,以便我们可以自动拉入最新版本的库文件?我一直在查看 git submodule
,但看起来它会引入或至少允许访问库项目的完整源代码。我也开始查看 Maven
,但我不清楚这是否也需要访问整个存储库。有another/better的方法吗?或者 Maven 真的会做我想做的事吗?或者我是否需要在其他地方发布我的 jar 文件,如果需要,我该如何自动化该过程,因为我不想每次更新时都必须手动将 jar 文件复制到某个地方(这经常发生)?
Maven 和像 Nexus is the common way to do what you're asking. Nexus stores binary files like .jar's .dll's etc and Maven has the capability to publish and retrieve specific versions of these binaries and include them when building the project. As Ryan commented, Maven Central 这样的二进制存储库是一个 public 二进制存储库,如果您希望全世界都可以访问您的 .jars,您可以发布到它,但是使用 Nexus 您可以进行细粒度的访问控制您的二进制文件。
如果您使用 Maven 构建自己的项目,您可以将其配置为使用单个命令构建、测试和发布到您的 Nexus 存储库 mvn deploy
。然后客户只需更新他们的项目以指向新版本,Maven 将下载它并在类路径中使用它。这一切都非常无缝,我绝对会建议重构您的构建过程以使用 Maven 或类似产品。
我们有一组核心 java 库,发布为 jar
文件,用于多个客户端项目。库项目和客户端项目都在我们的 git 服务器 (GitLab EE) 上。有时客户和第三方(如分包商)可以访问项目源代码,但我们不希望他们访问核心 java 库的源代码。
所以我需要知道的是如何在git中设置某种依赖或类似的东西,以便我们可以自动拉入最新版本的库文件?我一直在查看 git submodule
,但看起来它会引入或至少允许访问库项目的完整源代码。我也开始查看 Maven
,但我不清楚这是否也需要访问整个存储库。有another/better的方法吗?或者 Maven 真的会做我想做的事吗?或者我是否需要在其他地方发布我的 jar 文件,如果需要,我该如何自动化该过程,因为我不想每次更新时都必须手动将 jar 文件复制到某个地方(这经常发生)?
Maven 和像 Nexus is the common way to do what you're asking. Nexus stores binary files like .jar's .dll's etc and Maven has the capability to publish and retrieve specific versions of these binaries and include them when building the project. As Ryan commented, Maven Central 这样的二进制存储库是一个 public 二进制存储库,如果您希望全世界都可以访问您的 .jars,您可以发布到它,但是使用 Nexus 您可以进行细粒度的访问控制您的二进制文件。
如果您使用 Maven 构建自己的项目,您可以将其配置为使用单个命令构建、测试和发布到您的 Nexus 存储库 mvn deploy
。然后客户只需更新他们的项目以指向新版本,Maven 将下载它并在类路径中使用它。这一切都非常无缝,我绝对会建议重构您的构建过程以使用 Maven 或类似产品。