我正在做一个相当大的 Maven 项目。我们可能有大约70个单独的工件,它们大致分为两个共享代码库和可能10个使用它们的应用程序。所有这些项都存在于名称空间 com.mycompany.*
中。
大部分时间我们都是在运行快照构建。因此,为了完成应用程序的完整构建,我可能首先构建库项目,以便将它们安装到我的本地存储库(例如,mycompany-libname-2.4-SNAPSHOT.jar
)中。
问题是,当我开始构建应用程序时。出于某种原因,Maven 希望检查主要的两个公共存储库(Maven-net-repo 和 java-net-repo) ,以获取所有 mycompany-*-SNAPSHOT.jar
构件的更新。当然,它们并不存在,所有的问题最终都会回到我刚刚在本地存储库中构建的版本,但是我希望 Maven 停止这样做,因为(a)它让我觉得自己像一个坏的 net.public,因为我不断地检查这些存储库中永远不会存在的东西,(b)它在我的构建过程中添加了一些不必要的和恼人的网络延迟。
我大部分时间都在离线模式下运行 maven 来解决这个问题,但这并不理想,因为偶尔会更新对公共库的依赖。因此,我正在寻找一个解决方案,这将导致 Maven 不检查来自特定存储库的符合特定条件的工件的更新——在这种情况下,如果 Maven 忽略 SNAPSHOT 版本或者 com.mycompany
名称空间中的工件,我会很高兴。