- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们拥有一组核心 Java 库,以 jar
文件形式发布,可在多个客户端项目中使用。库项目和客户端项目都位于我们的 git 服务器 (GitLab EE) 上。有时客户和第三方(例如分包商)可以访问项目源代码,但我们不希望他们访问核心java库的源代码。
那么我需要知道的是如何在git中设置某种依赖或类似的依赖,以便我们可以自动 pull 最新版本的库文件?我一直在研究 git submodule ,但这看起来它将引入或至少允许访问库项目的完整源代码。我也开始研究 Maven,但我不清楚它是否也需要访问整个存储库。还有另一种/更好的方法吗?或者 Maven 真的会做我想做的事吗?或者我是否需要在其他地方发布我的 jar 文件,如果是这样,我如何自动化该过程,因为我不想每次更新时都手动将 jar 文件复制到某个地方(这很常见)?
最佳答案
Maven 和二进制存储库,如 Nexus是执行您所要求的操作的常见方法。 Nexus 存储二进制文件,如 .jar、.dll 等,Maven 能够发布和检索这些二进制文件的特定版本,并在构建项目时包含它们。正如瑞安评论的那样,Maven Central是一个公共(public)二进制存储库,如果您希望全世界都可以访问您的 .jar,您可以将其发布到该存储库,但使用 Nexus,您可以对二进制文件进行细粒度的访问控制。
如果您使用 Maven 构建自己的项目,则可以使用单个命令 mvn deploy
将其配置为构建、测试并直接发布到您的 Nexus 存储库。然后,客户只需更新他们的项目以指向新版本,Maven 将下载它并在类路径上使用它。这一切都非常无缝,我绝对建议重构您的构建过程以使用 Maven 或类似的产品。
关于java - 如何在git项目中包含库jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29417875/
我是一名优秀的程序员,十分优秀!