从测试内部自动强制将pom更新为较新版本

时间:2018-10-05 12:27:01

标签: maven maven-3 maven-plugin maven-versions-plugin

这与使用Maven目标更新pom依赖关系无关。我已经解决了。 因此,我负责创建,打包和维护通用实用程序。反过来,组织中的所有团队都使用这些通用实用程序。问题是使用这些实用程序的团队不会更新依赖关系,除非万不得已。我们希望他们使用我们的通用实用程序的最新发行版,除非很少。 现在,我遇到了mojohaus的Maven Versions Plugin,我认为它通过使用两个目标-versions:update-propertiesversions:use-latest-releases满足了我的需求。它满足我的目的,除了两件事:

  1. 我看不到从更新依赖项/属性中排除某些groupid:artifactid的方法

  2. 我们真的希望这是强制性的(可能是Test执行的一部分-这主要是针对Test Automation工具),而不是一个行之有效的目标。因为如果这是一个简单的目标,则需要单独调用它,因此对于团队来说是可选的。

我们知道,强行更新到最新版本可能会导致某些问题,例如重现缺陷,但是我们愿意冒险。我们的实用程序实际上是测试产品。

对此有任何指导/帮助,我们深表感谢。

编辑:我们已经使用maven目标clean install运行测试。因此,他们使用现有的pom。我们希望在测试运行之前进行依赖项更新。如果可能的话,也希望将更改提交给源代码管理(位桶)。 我们使用Jenkins进行了测试设置,但是团队也在本地计算机上运行了多个测试。

编辑:找到#1的答案。该插件提供排除正则表达式的组和工件ID的功能。使用标签excludesexcludesList

1 个答案:

答案 0 :(得分:0)

很抱歉坚持。从Maven的角度来看,我看到两个主要解决方案:

  1. 您的项目和实用程序jar紧密相连,每个项目始终需要使用最新版本。然后,您可以将所有项目和实用程序捆绑在一个多模块项目中。这样可以确保所有内容始终保持最新状态,但这要求所有项目和实用程序始终一起构建(而不是单独构建)。

  2. 您将实用程序分发到在不同时间生成和发布的不同项目。然后由项目决定何时更新。不幸的是,没有标准的方法可以弃用jar。

如果我对您的理解正确,那么您想要“中间的东西”。这可能很难实现。