问题标签 [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.
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 文件:-
maven - 更新特定的父 POM
我的项目中有几个 POM,其中一些有父级指向我的存储库之外的工件。所以当我发布这个时,我应该为我的父母和我的项目有不同的版本。
我需要搜索具有“com.mycompany”作为父 groupId 和“myproduct”作为父 artifactId 的 POM,versions-maven-plugin
应该仅将父版本更新为 1.0.0。项目版本应保持不变。我稍后会正常更改项目版本。
我无法做到这一点。到目前为止我已经尝试过:我设计了一个 Rules.xml,其中包含:
我已经调用了版本插件
但这并没有更新这些 pom 的父版本。
我也为此调用了更新父级-
但这会为我更新所有父 pom。我猜我的 Rules.xml 也是错误的。但即便如此,父版本是任意的,而不是父版本。也许我不明白这个 maven 目标中 parentVersion 背后的含义。我需要它来更新到我选择的版本。
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
maven - 版本maven插件的意外更新行为
该目标versions:update-properties
产生了以下输出:
我设置了参数-DallowIncrementalUpdates=false
, 和-DallowMinorUpdates=false
,-DallowMajorUpdates=false
这反映在“允许的子增量版本更改”行中。尽管如此,版本还是通过更改版本中的第三个数字进行了升级。
这种行为是出乎意料的,也不是幂等的(下一次运行替换7.0.1-RC0002
为7.0.1
)。
我试图从文档以及 Javadoc 和源代码中找出为什么会发生这种情况,但在 Maven 版本比较中迷失了方向。
有人可以启发我吗?这是一个错误,还是我需要进行不同的配置以避免第三个数字的更新?
maven - Maven 在所有使用它的组件中更新组件版本
我的项目由许多(约 100 个)组件组成,其中大多数使用约 10 个核心组件。当我更新核心组件的版本时,我希望在使用它的每个组件中都有它的最新版本。
麻烦的是组件依赖于许多其他组件 - 我希望一次只更新这些依赖项中的一个(刚刚更新的那个)。
我正在使用versions-maven-plugin 和“ update-properties ” mojo - 问题是它需要为每个组件执行maven,以检查它是否需要更新并进行实际的属性更新。我正在使用 Jenkins 作为 CI 解决方案,尝试编写自定义管道,它确实是可行的,但它仍在迭代整个项目......
我想知道是否有更有效的方法来做到这一点?
在这里创建/维护依赖关系图是否可行 - 你知道任何可以集成到管道中的软件吗?(这里稍微澄清一下:我所有的组件都在同一个 maven groupid 和 gitlab 中的同一个项目下)。
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
。没有成功。
一些日志:
在此先感谢您的帮助。
maven - 从命令行设置依赖项的版本
我想从命令行在 POM 中设置依赖项的版本。很像versions:set
(对于项目的版本),但是对于特定的依赖项。
我不想制作任何 XML 扫描工具,因为指定版本的方法有很多种,而且很难全部处理。
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。但它们都不起作用。
有什么想法或建议吗?先感谢您!
java - 在命令行上转义 Maven 属性
我正在尝试打电话versions:set -DnewVersion=${revision}
,但没有 ${revision}
被替换。
我试图逃避$
as \$
or $$
,但这没有用。
知道如何实现这一目标吗?
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-release
与update-properties
目标?