问题标签 [maven-versions-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
576 浏览

maven - Maven 版本插件 - 排除带有后缀的主要版本

我正在实现 Maven 版本插件来管理我们的依赖项,但由于“.RELEASE”后缀而无法排除下一个 Spring 主要版本。

这是我的一个片段pom.xml

我想要做的是更新到最新的 4.XX (4.3.something) 不允许可能引入重大更改的 5.0 系列。不幸的是,由于后缀的原因,它忽略了应该忽略 5.0.0 版本的“)”。

我目前没有外部化规则 XML 文件(获取它)。有人可以帮忙吗?

编辑:我正在使用以下命令进行更新:

编辑2:下面是我对maven插件的配置:

0 投票
1 回答
659 浏览

maven - 版本-maven-plugin:update-property 不更新 pom.xml

嗨 Meier 我使用了以下目标:

我的工作 B pom.xml 是:

在属性下,它具有硬编码的版本:

我的工作 pom.xml:

当我运行上述目标时,Maven 正在从 Artifactory 中选择最新版本(即 20.1.0),但是当我在属性下检查 Job B 的 pom.xml 时,它仍然显示为 19.6.5。我需要一种将 19.6.5 或当前版本更改为可用的最新版本的方法。难道我做错了什么?我无法弄清楚。

0 投票
1 回答
163 浏览

maven - 如何更新/修复单个子模块的父版本

结构

我知道这个项目结构不是“Maven 方式”,这就是我首先挣扎的原因。不幸的是,我无法更改项目结构。

我尽量简化它:

用例

所有模块的版本都应更改为给定版本。除了父模块,没有模块明确定义其版本,因此只需更改父版本。但是由于所有其他模块都引用了父版本,因此必须相应地更新它们。

这适用于父 POM(或激活的配置文件)部分中release:update-versions -DautoVersionSubmodules列出的所有模块(在父级上使用)。<modules>但是,其余模块aggregator-daggregator-t没有更新。

失败的尝试

所以我想我会单独更新剩余的模块,使用mvn --non-recursive,但到目前为止没有运气。

使用发布插件,我只设法更新了他们自己的版本,release:update-versions但是这不会更新引用的父版本,因此它会导致模块版本与父版本不同(发布添加了显式模块版本声明插入):

使用版本插件失败,versions:set因为模块版本是由其父版本定义的,versions:update-parent不起作用,因为我无法指定新的父版本(而是将设置在远程存储库中找到的最新版本)并versions:update-child-modules告诉我所有子模块都已启动迄今为止(因为这个想法是在引用我想要更新的模块的聚合器上运行它)。

其他想法

Maven 命令在 Jenkins 声明性管道中执行,所以也许我可以尝试 (deprecated) writeMavenPom

除此之外,使用类似sedmaven-antrun-plugin用于正则表达式替换的东西,我已经没有想法了。

0 投票
1 回答
151 浏览

maven - 跨项目继承中的Maven父版本${revision}扩展

背景:
我正在使用 maven 3.5 并且有一个“主”聚合器项目,它有 4 个模块(同时使用聚合和继承)。
我还有 30 个独立的子项目,包括单模块和多模块,每个子项目都继承自这 4 个模块之一。

问题:

我想在子项目${revision}的标签中使用,但我观察到的是 maven 在扩展之前尝试解析父项(到 中指定的值)。这导致 maven 无法解析父项目,因为它正在寻找父项目的文字“${revision}”版本。<parent><version>${revision}<properties><revision>

问题

  • ${revision}对跨项目继承不起作用 是真的吗?

  • 有什么解决办法吗?(同时试图避免使用 maven-versions 插件)

注意:我可以${revision}在单个多模块项目中毫无问题地使用 - 这不是问题。

0 投票
0 回答
154 浏览

maven - 版本 Maven 插件:不要更新到可用的最新版本

让我们考虑一下我这样的依赖pom.xml

对于每个构建,如果版本存在,我希望更新此依赖项的版本。因此,我希望版本从1.0-SNAPSHOT更新到1.0即使 2.0 版本已经发布

可以使用Versions Maven Plugin,执行mvn versions:use-releases. 美好的。

现在,版本在属性中设置。pom.xml看起来像这样:

和以前一样,如果版本存在,我希望更新此依赖项的版本。

看起来可以使用相同的版本 Maven 插件,执行mvn versions:update-properties。但是,为了这个目标,版本会更新到可用的最后一个版本(例如,在我们的例子中是2.0 )而不是1.0

任何想法如何获得与目标相同的行为use-releaseupdate-properties目标?

0 投票
1 回答
147 浏览

java - Maven-versions-plugin:用于否定不遵循特定标签格式的版本的正则表达式

我正在使用maven-versions-plugin目标setProperties。我已经定义了一个ruleset用于比较当前属性版本与包含 git 分支名称(一个 git 标签)并具有以下格式的可用版本:
<number>.<number>.<number>-<branch_name>.<number>
例如,如果分支是dev我想匹配版本,1.29.0-dev.5并忽略任何其他标签,如1.28.0-release.3or 1.8.0-prere10010.1
该规则要求指定要忽略的版本 - 因此<number>.<number>.<number>-dev.<number>应忽略所有不属于该形式的版本。
我已经尝试了几个正则表达式,但没有达到预期的结果 - 所有版本都在有效版本列表中,以便与当前版本进行比较

`

你能帮忙写正确的正则表达式吗?

0 投票
1 回答
408 浏览

maven - 在 mvn 发布期间使用 mvn 版本插件

我在 Kubernates 中有一个多模块 Maven 项目。我们打算一起对所有这些模块进行版本控制。但截至目前,我最终在每个模块 pom.xml 中使用硬编码版本,如下所示

主父模块具有以下配置

参考

目前,我在 pom.xml 中使用 mvn release 插件

由于项目在 Kubernetes 中,这里是我在发布时使用的 Jenkins 文件内容

现在,在发布期间,我需要通过我选择的新版本更新父 pom 和所有子模块 pom 版本,我可以使用mvn 版本插件,例如

  1. mvn versions:set -DnewVersion=3.00.0-SNAPSHOT -DprocessAllModules -DgenerateBackupPoms=false接着
  2. mvn versions:commit -DprocessAllModules

我应该在 Jenkins/pom.xml 的哪个阶段添加这个?现在,这个插件只有在我想升级到我选择的特定版本(比如3.00.0-Snapshot)时才有用,否则,mvn release 插件应该自动将版本升级到2.50.1-SNAPSHOT. 这是正确的理解吗?

如何优雅地处理这个 pom 版本更新问题?

提前致谢!

0 投票
1 回答
248 浏览

java - 使用 mvn 版本排除属性:使用 excludesList 更新属性

mvn versions:update-properties -DexcludesList=org.scalatest:scalatest*用来排除scalatest.versionpom.xml 中的属性更新:

但是运行命令后scalatest.version会更新到最新3.3.0-SNAP2版本。

如何-DexcludesList正确使用论据?我跟着文档

我发现的唯一解决方法是排除以下SNAP2版本rules.xml

并运行mvn versions:update-properties -Dmaven.version.rules=file:////tmp/rules.xml -DexcludesList=org.scalatest:scalatest*

这种方式scalatest更新为3.2.2. 我想scalatest完全忽略版本的更新。

尝试了不同的变体:-DexcludesList=org.scalatest:scalatest:*-DexcludesList=org.scalatest:scalatest:*:*:*无济于事。

使用 2.1 版versions-maven-plugin,更新到最新版本2.8.1并且仍然scalatest更新。

0 投票
1 回答
454 浏览

maven - 什么时候更新你的 pom 中的主要版本而不是次要版本?

我有一个实用服务 x,它位于 maven repo 中,并被我的其他一些服务使用。当我们进行小的更改时,我们通常会更新服务 x 的次要版本,并且我们目前使用的是 1.0.15 版本。不,我正在进行另一项更改,我在考虑是否应该将版本更新到 1.0.16 或者我应该更新 1.1.0 之类的版本。如果有人可以解释一般应该如何做,那我肯定会帮助其他开发人员和我。如果您需要更多信息,请告诉我。

0 投票
1 回答
353 浏览

maven - 为什么 Maven 版本插件不更新本地定义的属性?

我正在使用versions-maven-plugin,并且在我的顶级pom.xml 中有几个用于versions-maven-plugin 的配置:

还有一个引用内部存储库“魔术工具”的属性:

有问题的命令是

这比指定确切的版本更可取,因为它将在 TeamCity 中使用 - 此命令在另一个具有几乎相同的 pom.xml 和完全相同的配置的应用程序中完美运行!

然而,非功能性应用程序的输出是

当我们的仓库中的魔术工具在 v102 上时,而我们正常工作的应用程序输出:

如何让非功能性应用程序更新此属性 magic-tool.version?