这与使用Maven目标更新pom依赖关系无关。我已经解决了。
因此,我负责创建,打包和维护通用实用程序。反过来,组织中的所有团队都使用这些通用实用程序。问题是使用这些实用程序的团队不会更新依赖关系,除非万不得已。我们希望他们使用我们的通用实用程序的最新发行版,除非很少。
现在,我遇到了mojohaus的Maven Versions Plugin,我认为它通过使用两个目标-versions:update-properties
和versions:use-latest-releases
满足了我的需求。它满足我的目的,除了两件事:
我看不到从更新依赖项/属性中排除某些groupid:artifactid的方法
我们真的希望这是强制性的(可能是Test执行的一部分-这主要是针对Test Automation工具),而不是一个行之有效的目标。因为如果这是一个简单的目标,则需要单独调用它,因此对于团队来说是可选的。
我们知道,强行更新到最新版本可能会导致某些问题,例如重现缺陷,但是我们愿意冒险。我们的实用程序实际上是测试产品。
对此有任何指导/帮助,我们深表感谢。
编辑:我们已经使用maven目标clean install
运行测试。因此,他们使用现有的pom。我们希望在测试运行之前进行依赖项更新。如果可能的话,也希望将更改提交给源代码管理(位桶)。
我们使用Jenkins进行了测试设置,但是团队也在本地计算机上运行了多个测试。
编辑:找到#1的答案。该插件提供排除正则表达式的组和工件ID的功能。使用标签excludes
和excludesList
答案 0 :(得分:0)
很抱歉坚持。从Maven的角度来看,我看到两个主要解决方案:
您的项目和实用程序jar紧密相连,每个项目始终需要使用最新版本。然后,您可以将所有项目和实用程序捆绑在一个多模块项目中。这样可以确保所有内容始终保持最新状态,但这要求所有项目和实用程序始终一起构建(而不是单独构建)。
您将实用程序分发到在不同时间生成和发布的不同项目。然后由项目决定何时更新。不幸的是,没有标准的方法可以弃用jar。
如果我对您的理解正确,那么您想要“中间的东西”。这可能很难实现。