我在版本控制系统 (git) 中有一个小型 Java 项目,由 4 个开发人员共享。我正在考虑在这个项目中使用 Maven 作为构建工具。
依赖管理是一个需要的功能,但我不想要: - 依赖项的自动更新(因为这可能会破坏我的软件)。 - 依靠 Internet 连接从远程存储库下载依赖项并能够编译我的代码。
因此,问题:
1) 我可以将 Maven 配置为使用本地依赖项(例如,在 VCS 中共享的 jars)吗?我没有在多个项目之间共享多个依赖项,而且我的依赖项很少会更新,所以使用 Maven 存储库对我来说不值得恕我直言。
2) 如果我选择使用 Maven 存储库,我可以在本地网络中配置一个吗?我不想要远程存储库镜像或远程存储库的门户。我想要一个包含我的依赖项的独立存储库,位于我本地网络中的服务器上。
3) 如果我对远程存储库使用默认的 Maven 方法,我可以在第一次下载所有依赖项后关闭依赖项更新吗?
在此先感谢您的帮助。
最佳答案
对 1 的回答:
是的,你可以,谷歌搜索系统范围的依赖关系,但是:这样做不是一个好主意,因为你将删除一个关键功能。
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>app-lib</artifactId>
<version>3.1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/app-lib-3.1.0.jar</systemPath>
</dependency>
对 2 的回答:
是的,您可以: - Artifactory - Nexus
对 3 的回答:
是的,你可以。对于这种情况,您可以使用 ---offline 标志或更好的方法:释放所有依赖项。
一些想法: 您想使用依赖管理系统,而不使用依赖管理,这对我来说听起来很奇怪。
如果您担心库中的更改可能会破坏您的代码,请不要使用 SNAPSHOT。 尝试一种版本方案。我们使用
x.y.z
- 如果版本中的 z 发生变化,jar 应该是兼容的。
- 如果y改变了,你就必须改变你的代码
- 如果 x 发生变化...那么一切都需要更新。
关于java - Maven:存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850958/