1

这与使用 maven 目标更新 pom 依赖项无关。我已经把它整理好了。所以我负责创建、打包和维护常用的实用程序。这些通用实用程序依次被组织中的所有团队使用。问题是使用这些实用程序的团队不会更新依赖项,除非这是最后的手段。我们希望他们使用我们常用实用程序的最新版本,除非很少。现在我遇到了 mojohaus 的这个Maven 版本插件,我认为它通过使用两个目标来满足我的需要 -versions:update-propertiesversions:use-latest-releases. 它符合我的目的,除了两件事:

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

  2. 我们真的希望这是一个强制性的事情(可能是测试执行的一部分 - 这主要是为了测试自动化实用程序)而不是一个 maven 目标。因为如果它是一个 Maven 目标,则需要单独调用它,因此对于团队来说是可选的。

我们知道强制更新到最新版本可能会导致缺陷重现性出现一些问题,但我们愿意承担这个风险。我们的实用程序是真正的测试产品。

对此的任何指导/帮助表示赞赏。

编辑:我们已经使用 Maven 目标运行我们的测试clean install。所以他们使用现有的 pom。我们希望在测试运行之前更新依赖关系。如果可能,还希望将更改提交到源代码控制(bitbucket)。我们使用 Jenkins 进行测试设置,但团队也在本地机器上运行多个测试。

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

4

1 回答 1

0

对不起坚持。从 Maven 的角度来看,我看到了两个主要的解决方案:

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

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

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

于 2018-10-06T07:57:59.260 回答