问题标签 [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 投票
3 回答
920 浏览

java - 以非交互方式更新 Maven 项目版本以发布版本

我想将我的 Maven 项目的版本更新为与当前快照版本对应的发布版本。例如1.2-SNAPSHOT应该变成1.2. 换句话说,我只想-SNAPSHOT从版本中删除后缀。我想以非交互方式执行此操作,以便我的 CI 工具可以执行此操作。

我知道这可以通过 themaven-release-plugin或 themaven-versions-plugin以及可能的其他插件来完成。我偏爱 ,maven-versions-plugin因为它可以很好地处理聚合器项目。

两个插件都提示输入新版本,但允许您在命令行上提供版本。如何提供相对于当前快照版本的新版本?如前所述,我只想删除该-SNAPSHOT部分。

所以要清楚:

  • 我只想更新项目的版本,而不是发布插件提供的所有其他内容。
  • 我不想指定版本号,而只是将版本更新为“之前的版本-SNAPSHOT”。
0 投票
2 回答
26118 浏览

java - 在 jar 版本中包含 git commit hash

我正在使用 maven,我的目标是在版本号中包含 git commit 哈希。类似于:1.1.{git_hash}。

我正在尝试遵循本教程

问:是否可以以某种方式覆盖 pom 文件的版本元素中指定的版本号?

0 投票
1 回答
1303 浏览

maven-versions-plugin - Maven 版本插件忽略版本仓库中的版本

我正在尝试使用 Maven 版本插件,但被导致插件无法在公司发布工件存储库中找到发布工件的问题阻止。演示该问题的测试 POM 的一部分...

如果我执行versions:force-releases,则工件版本号不会更新。Maven 记录以下...

版本 1.36 肯定在发布工件存储库中。如果我更改存储库定义以启用快照并执行相同的目标,则工件版本号会正确更新为 1.36。

我一直试图让这个插件工作好几天,但是当我为 SNAPSHOT 启用它时,它似乎只能在发布工件存储库中找到发布工件......

我究竟做错了什么?

谢谢

0 投票
1 回答
911 浏览

maven - Maven 版本的目的:设置 removeSnapshot?

目标显示versions-maven-plugin versions:set有一个removeSnapshot参数:

removeSnapshot: 是否从现有版本中删除 -SNAPSHOT。如果未设置将默认为 false。

我有一个 Maven 多模块聚合 POM,所有模块中的所有版本都设置为0.2.0-SNAPSHOT. 我准备发布(请不要告诉我使用 Maven 发布插件),我想将版本更改为0.2.0. 所以我试试这个:

Maven停下来问我:

嗯,如果我手动输入0.2.0,有什么意义removeSnapshot=true呢?

0 投票
1 回答
336 浏览

maven - maven 版本插件不获取带有内部版本号的版本

我有一个版本为 1.0.0-19 的库(19 是 Jenkins 内部版本号),在下一个 jenkins 版本中,版本 1.0.0-20 将分配给该库,并且该工件将部署到一个 Maven 存储库。如果我执行versions:use-latest-versions,另一个在pom依赖部分引用库的工件不会获得最后一个版本,依赖版本仍然是1.0.0-19而不是1.0.0-20。也许它与 allow* 系统参数有关,内部版本号部分没有属性。

任何想法如何实现始终获得最后一个版本(1.0.0-19 -> 1.0.0-20)?

0 投票
3 回答
1905 浏览

maven - Gradle 相当于 maven-versions-plugin

这是我的build.gradle

我想自动化发布过程,其中包括需要将两个版本都设置为特定值,例如1.1.02.2.0仅使用命令行。任何类型的自动增量都不是一种选择。

使用 Maven,我会这样做maven-versions-plugin

我怎样才能对 Gradle 做同样的事情?我只发现了这个未回答的问题。必须有一些简单的方法来做到这一点?

0 投票
0 回答
492 浏览

maven-3 - Maven BOM文件多模块项目

使用 Maven BOM(材料清单)文件,我可以通过如下导入此 BOM 来使用依赖项,而无需在 POM 中定义依赖项版本

正如我在多个项目中使用的那样。我想使用Maven 版本插件一次更改使用此 BOM 文件的所有模块的版本,但没有运气。

任何帮助都是可观的。

0 投票
0 回答
61 浏览

maven - 如何告诉versions-maven插件作用于非子模块?

我有一个多模块项目,其中所有模块都与“聚合器”模块位于同一目录中。聚合器不是模块的父级,它只是将任何 maven 命令传播到模块,但没有继承。

当我在聚合器目录中执行此操作(maven-release-plugin 命令)时:

它确实改变了所有模块的版本,但是当我这样做时:

它没有,它只更改聚合器模块版本。

注意:我知道当您在聚合器和模块之间存在父子关系时,您不会遇到此问题。

0 投票
1 回答
1076 浏览

java - 递归地对文件执行 Maven 命令

我有一个非常复杂的多模块 Maven 项目,其中包含嵌套项目。基本上,问题可以简化为这种配置:

项目 A的 pom有项目 BC作为模块。而在Project B的 pom 中,我只有Project D。因为项目 E是一个非常大的项目,我们不需要每天编译,所以它被排除在日常构建之外。

我现在想执行一个 Maven 命令,例如versions:update-parent。我希望更新我的所有项目和子项目。如果我使用 pom.xml,项目 E将不会被更新,因为它没有被声明为项目 B的子模块。

我想创建一个可以使用的自定义 pomBis.xml。但是如果我在每个子项目上创建一个 pomBis.xml 并运行命令,则只使用项目 A的 pomBis.xml 。当 Maven 更深入时,它会回到正常的 pom.xml。

我看到的唯一解决方案是在项目 A中创建一个 pomBis.xml,它将列出所有子模块并真正列出所有叶子项目。

我有什么问题吗?

0 投票
0 回答
445 浏览

maven - 更新存储在属性中的依赖项的次要版本

我正在尝试使用 maven 使用 maven-versions-plugin 更新到最新的次要版本。目标use-latest-versions有一面旗帜allowMajorUpdates。但这将直接在依赖项中设置版本。

我所在的位置,它们将版本号存储在 pom.xml 的属性部分中。他们希望保持这种状态。

目标像我想要的update-properties那样更新属性,但我不想允许重大更新。

我正在使用 Maven 3.3.9。有什么建议么?