在我工作的开发商店中,我们有一个内部 MAVEN 存储库,用于保存我们的库(专有和开源)。我们面临的一个常见问题是,有时,本地 MAVEN 存储库中的开源库会过时。是否有一种自动方法可以使我在 MAVEN 存储库中使用的所有开源库始终保持更新?您建议如何解决这个问题?

有帮助吗?

解决方案

假设你:

  • 不想下载所有内容
  • 不想运行另一个服务器进程
  • 只想跟踪有限数量的项目

您可能想要创建一个单独的 pom.xml 文件,其依赖项如下所示:

<dependency>
    <groupId>org.openfoo</groupId>
    <artifactId>jfoo</artifactId>
    <version>[1.0.0,2.0.0)</version>
</dependency>

这将告诉 maven 使用 jfoo 1.0.0 到 jfoo 2.0.0,因此当 jfoo 发布版本 1.2.17 时,您将在下一个构建中获取该版本,假设您的设置设置为每次检查版本。

这个 pom 不需要实际构建任何东西。只需列出您想要跟踪的内容即可。

跑步:

 cd the-path-to-the-project; mvn -q -B -U package

通过 cron 每天一次将更新该 pom 中的所有依赖项,并且仅在出现问题时报告

顺便说一句,这是一个黑客。如果开发人员数量 > 3 并且您有运行 Nexus 的资源,则不必费心进行 hack。

其他提示

Archiva已被提及,但 nexus 似乎更受欢迎。两者都旨在解决像你一样的问题

查看 Apache Archiva ,Maven的存储库管理员。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top