java - Maven:存储库

标签 java maven

我在版本控制系统 (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/

相关文章:

java - 我可以通过 "build-info"制作一个带有 "Spring Boot Maven Plugin"的可执行 jar 吗?

java - Maven 模块 Junit 测试

java - Maven 使用错误版本的 android 进行编译

java - 从系统变量值读取 logback.xml

java - 覆盖 BeanPropertyRowMapper 以支持 JodaTime DateTime

java - 当我想使用find()方法两次时,我可以使用flush()而不是commit()吗?

java - 乒乓球离开帕德尔

java - 在 jar 中的 jar 中获取文件

Java Web 应用程序从文件读取并写入同一文件

maven - 如何让 artifactory 更新虚拟仓库的 maven-metadata.xml?