问题标签 [versions-maven-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 投票
1 回答
721 浏览

maven - 如何在 maven 版本的 -DrulesUri 参数中提供我的“rules.xml”文件:update-properties,而无需在 pom.xml 文件中指定它?

我正在使用 Maven 版本插件的 update-properties 目标来更新多个项目的 pom.xml 中的属性。(https://www.mojohaus.org/versions-maven-plugin/update-properties-mojo.html)。我想要最新版本的属性依赖项。

现在,有一些版本错误的二进制文件。我希望我的代码忽略这些版本。为此,我创建了我的“rules.xml”文件。我想将它作为 -DrulesUri 参数提供给 update-properties 目标。

我已经尝试在项目的 pom.xml 文件中指定此 rules.xml 文件,如(Maven 版本插件:从 maven 依赖项中引用 rule.xml?)所示。这是因为插件可以成功忽略 rules.xml 中的指定版本。所以,rules.xml 文件没有问题。但是,这在我的情况下没有用,因为涉及的项目很多,我无法更新每个项目的 pom.xml。

rulesUri 属性的文档说“ruleSet 文件的 URI,其中包含控制如何比较版本号的规则。URI 可以是 Wagon URI 或类路径 URI(例如 classpath:///package/sub/package/rules. xml)。” 这么多文档对我没有帮助。我想要一个关于如何在 -DrulesUri 参数中指定 rules.xml 文件的示例。我尝试将 rules.xml 文件指定为本地相对路径/绝对路径。但是,update-properties 目标似乎无法识别规则,只是在没有 -DrulesUri 参数的情况下类似于执行。我尝试阅读https://maven.apache.org/wagon/以了解 Wagon URI。但是,我没有找到一种简单的方法将我的 rules.xml 上传到某个地方,然后使用这个 Wagon URI 在 -DrulesUri 中指定。

这是我的 rules.xml 文件:-

0 投票
0 回答
44 浏览

maven - 更新特定的父 POM

我的项目中有几个 POM,其中一些有父级指向我的存储库之外的工件。所以当我发布这个时,我应该为我的父母和我的项目有不同的版本。

我需要搜索具有“com.mycompany”作为父 groupId 和“myproduct”作为父 artifactId 的 POM,versions-maven-plugin应该仅将父版本更新为 1.0.0。项目版本应保持不变。我稍后会正常更改项目版本。

我无法做到这一点。到目前为止我已经尝试过:我设计了一个 Rules.xml,其中包含:

我已经调用了版本插件

但这并没有更新这些 pom 的父版本。

我也为此调用了更新父级-

但这会为我更新所有父 pom。我猜我的 Rules.xml 也是错误的。但即便如此,父版本是任意的,而不是父版本。也许我不明白这个 maven 目标中 parentVersion 背后的含义。我需要它来更新到我选择的版本。

0 投票
0 回答
218 浏览

maven - Versions Maven Plugin update-parent 检查在线 maven

我有 2 个 maven 项目,父母和孩子,都有 0.0.1-SNAPSHOT。

父母的pom:

孩子的pom:

我将父 pom 的版本更新为某个发布版本,比如 1.0.0 并mvn clean install在我的父级上做了。所以,我的 maven 本地 repo 包含已发布的 pom。现在,我想更新 parent.version 和我的孩子 pom 的版本。我跑

我希望它盲目地将 parent.version 更新为我在命令中提供的 parentversion。但是我收到了这个警告并且它没有更新。

这里记录了一个类似的问题,但我不明白这个问题的解决方案:https ://github.com/mojohaus/versions-maven-plugin/issues/121

0 投票
1 回答
76 浏览

maven - 版本maven插件的意外更新行为

该目标versions:update-properties产生了以下输出:

我设置了参数-DallowIncrementalUpdates=false, 和-DallowMinorUpdates=false,-DallowMajorUpdates=false这反映在“允许的子增量版本更改”行中。尽管如此,版本还是通过更改版本中的第三个数字进行了升级。

这种行为是出乎意料的,也不是幂等的(下一次运行替换7.0.1-RC00027.0.1)。

我试图从文档以及 Javadoc 和源代码中找出为什么会发生这种情况,但在 Maven 版本比较中迷失了方向。

有人可以启发我吗?这是一个错误,还是我需要进行不同的配置以避免第三个数字的更新?

0 投票
0 回答
146 浏览

maven - Maven 在所有使用它的组件中更新组件版本

我的项目由许多(约 100 个)组件组成,其中大多数使用约 10 个核心组件。当我更新核心组件的版本时,我希望在使用它的每个组件中都有它的最新版本。

麻烦的是组件依赖于许多其他组件 - 我希望一次只更新这些依赖项中的一个(刚刚更新的那个)。

我正在使用versions-maven-plugin 和“ update-properties ” mojo - 问题是它需要为每个组件执行maven,以检查它是否需要更新并进行实际的属性更新。我正在使用 Jenkins 作为 CI 解决方案,尝试编写自定义管道,它确实是可行的,但它仍在迭代整个项目......

我想知道是否有更有效的方法来做到这一点?

在这里创建/维护依赖关系图是否可行 - 你知道任何可以集成到管道中的软件吗?(这里稍微澄清一下:我所有的组件都在同一个 maven groupid 和 gitlab 中的同一个项目下)。

0 投票
1 回答
897 浏览

maven - mvn 版本:设置当子模块与其父模块匹配时不更改它们的版本,这与聚合器 pom 不同

我正面临使用versions:set. 其中一个用例不起作用,我不知道我是否遗漏了某些东西,或者这个用例特别是插件没有很好地支持。子模块版本不会更新到 1.4.0,因为它们会匹配 和 的someother-parentartifact-1版本someother-parentartifact-2。我一直无法使用不同的版本重现该问题,1.4.0所以我猜该插件会以某种方式混淆。

聚合器:

模块一:

模块 2:

一些见解:

  • 两个模块的父项目都不是聚合器。这是故意的,除非没有其他选择,否则不得更改。
  • 的值maven.deploy.skip不会改变结果。
  • 1.4.0我只在要设置的版本 ( ) 与子模块的父级版本匹配时才看到这一点。
  • 使用的命令是:mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.4.0 -DprocessAllModules.
  • 也试过用update-child-modules。没有成功。

一些日志:

在此先感谢您的帮助。

0 投票
1 回答
616 浏览

maven - 从命令行设置依赖项的版本

我想从命令行在 POM 中设置依赖项的版本。很像versions:set(对于项目的版本),但是对于特定的依赖项。

我不想制作任何 XML 扫描工具,因为指定版本的方法有很多种,而且很难全部处理。

0 投票
0 回答
203 浏览

maven - mvn 版本:use-releases 仅在 .m2 中找到版本,但在存储库中找不到

在发布过程中,我需要将模块的父模块和依赖模块的快照版本替换为发布版本。

首先,我运行“mvn 版本:set -DremoveSnapshot=true 版本:提交”来删除我的模块的快照版本。它运作良好。

接下来,我运行“mvn 版本:use-releases -DprocessParent=true 版本:提交”。它不做任何事情。从 mvn 的输出,

似乎它检查了我的仓库“maven-group”,但找不到它?我在“maven-group”中确实有父版本版本,0.0.3。我的 pom 中的快照版本是 0.0.3-SNAPSHOT。

但是,如果我在本地计算机上构建父级的发布版本(父级的 0.0.3 将在 .m2 中),则此命令可以从 0.0.3-SNAPSHOT 更新父模块。依赖模块也是如此。所以在我看来,versions:use-release 只能在 .m2 中找到发布版本信息。

这是我在 pom 中的仓库。我使用nexus repo。maven-group 是发布和快照仓库的入口。

有人有什么想法吗?我试图添加

对于 maven-group 或直接在 pom 文件中使用 maven-releases 或 maven-snapshots repo。但它们都不起作用。

有什么想法或建议吗?先感谢您!

0 投票
1 回答
750 浏览

java - 在命令行上转义 Maven 属性

我正在尝试打电话versions:set -DnewVersion=${revision},但没有 ${revision}被替换。

我试图逃避$as \$or $$,但这没有用。

知道如何实现这一目标吗?

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目标?