问题标签 [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.
maven - Maven 根据版本更新属性
我想在执行发布时将给定 pom 中的属性更新为新版本的主要+次要版本。
为此,我需要设定在发布期间运行的目标。我可以提前计算属性,但versions:set-property
我在其他地方看到的似乎已经消失(根据http://www.mojohaus.org/versions-maven-plugin/和 CLI 使用),以及此插件的其他目标似乎无法处理不使用确切的版本。
有没有任何相当简单的方法可以做到这一点,还是我必须使用 exec 或 antrun 插件来做到这一点?无论如何,似乎只有文本替换才能解决它。替换插件似乎可以工作,但这需要获取以前的版本,并且需要努力不破坏其他参考。
maven - 具有非数字版本的 Maven 版本插件
我目前正在实施一项 Jenkins 工作,其目标是调用 Maven 版本:显示依赖项更新,以便为我的依赖项找到最新的可用增量更新。
但是,该插件无法找到主要版本的依赖项的更新develop
。实际上,我在项目的依赖项中引用了其他内部项目,所有这些项目都从develop
版本开始,直到我们分支到发布分支,我们将在其中引用所需的发布版本。
我有一个专门的 POM 来管理这些版本,它看起来像这样:
因此,当我运行时mvn versions:display-property-updates -DallowMajorUpdates=false
,结果会显示 的潜在更新dep1
,但不会显示dep2
. 但是,删除该allowMajorUpdates
选项会给我返回有关开发的潜在更新。
我的理解是 Maven 对版本格式做了一些假设,例如数字,所以它不理解develop
为有效版本并跳过执行。
最后,我希望能够使用该allowMajorUpdates
选项,因为我宁愿不检查依赖项的新发布版本(我们从其他渠道获取信息),但是我不会看到我的develop
更新。 ..
除了自己的比较规则之外,有没有办法让 Maven 检查像这样的格式develop
?
谢谢
maven - 为什么maven版本插件不推荐插件升级
根据插件页面,最新版本的 Maven 依赖插件是3.1.1
.
在我的项目中,我看到:
./mvnw 依赖:帮助 | grep "Apache Maven 依赖插件" [INFO] Apache Maven 依赖插件 2.10
如果我跑./mvnw versions:display-plugin-updates | grep -i dependency | wc -l
我会看到0
表明版本插件似乎不想让我知道我可以从 2.10 -> 3.1.1 更新
我正在使用Maven 3.5.4
.
如果我明确地将其添加到我的 pom 中,则使用最新版本:
./mvnw 依赖:帮助 | grep "Apache Maven 依赖插件" [INFO] Apache Maven 依赖插件 3.1.1
有没有人能够教育我为什么会这样?它可能是我的项目中的错误配置,还是我误解了mvn:versions
应该如何工作。
maven - 在 Jenkins 管道中使用 maven 版本插件升级版本时出现错误的替换错误
在我的 jenkins 管道中运行此命令时出现错误的替换错误
这是这种情况下的错误消息 -
[代码] 运行shell脚本
/apps/jenkins/latest/workspace/ess-holani_master-3YNVBB6LFQA3QFK5NHYV57DW5HGSNALVGFJTJ4D6T72QVPJG4CDA/code@tmp/durable-374bc417/script.sh:第2行:-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion .nextIncrementalVersion}-SNAPSHOT:替换错误
脚本返回退出代码 1
但这有效->
此命令按预期提升我的 pom 版本。
运行上述命令时登录 jenkins shell
[代码] 运行shell脚本
mvn build-helper:parse-version 版本:set '-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT' -DgenerateBackupPoms=false -DprocessAllModules -DgenerateBackupPoms=false
在这里也可以使用双引号 -
我想了解为什么我们需要在这个脚本中添加一个额外的 '\\\' ?
michael works 建议的答案。
我也试过这个
我在最后关闭 ' 之前删除了 \ 。这也奏效了。
maven - 从测试内部自动强制更新 pom 到较新的版本
这与使用 maven 目标更新 pom 依赖项无关。我已经把它整理好了。所以我负责创建、打包和维护常用的实用程序。这些通用实用程序依次被组织中的所有团队使用。问题是使用这些实用程序的团队不会更新依赖项,除非这是最后的手段。我们希望他们使用我们常用实用程序的最新版本,除非很少。现在我遇到了 mojohaus 的这个Maven 版本插件,我认为它通过使用两个目标来满足我的需要 -versions:update-properties
和versions:use-latest-releases
. 它符合我的目的,除了两件事:
我看不到从更新依赖项/属性中排除某些 groupid:artifactid 的方法
我们真的希望这是一个强制性的事情(可能是测试执行的一部分 - 这主要是为了测试自动化实用程序)而不是一个 maven 目标。因为如果它是一个 Maven 目标,则需要单独调用它,因此对于团队来说是可选的。
我们知道强制更新到最新版本可能会导致缺陷重现性出现一些问题,但我们愿意承担这个风险。我们的实用程序是真正的测试产品。
对此的任何指导/帮助表示赞赏。
编辑:我们已经使用 Maven 目标运行我们的测试clean install
。所以他们使用现有的 pom。我们希望在测试运行之前更新依赖关系。如果可能,还希望将更改提交到源代码控制(bitbucket)。我们使用 Jenkins 进行测试设置,但团队也在本地机器上运行多个测试。
编辑:找到#1 的答案。该插件提供排除组和工件 ID 的正则表达式。使用标签excludes
和excludesList
java - 版本:属性的使用版本
据我了解,versions:use-releases
不会更新用于在依赖项中定义版本的属性。
是否也可以更新这些属性?我看到我们有一个versions:update-properties
,但它是为了将版本更新到最新版本,而不仅仅是用发布替换快照。
一个例子:
假设你有依赖
并且coutil.version
被定义为7.0.0-SNAPSHOT
。
没有属性(即7.0.0-SNAPSHOT
直接在版本标签中),versions:use-releases
将替换7.0.0-SNAPSHOT
为7.0.0
(如果存在)。现在有了属性的间接性,这不再发生。
我试图通过使用versions:update-properties
不允许主要、次要和增量更新(-DallowMajorUpdates=false
等)的地方来解决问题,但它产生了替换7.0.0-SNAPSHOT
为7.0.1-RC0002
而不是7.0.0
.
maven - Maven:根据星期几修改工件版本
我的一位同事给了我根据星期几修改 Maven 工件版本的任务。
周一至周六:SNAPSHOT 版本。
星期日:没有快照
有没有办法让这个想法成功?
我无法让它发挥作用,我尝试了不同的方法并且一次又一次地失败。我认为最好的想法/尝试之一是将 maven.timestamp 转储到变量中并用 regex-property@build-helper-maven-plugin 替换它。并且失败了。
但是在执行插件之前,版本已经设置好了。
我不知道这是否可能,如果可以,我该怎么做。
问候
编辑1:
包含年度周的工件构建版本,例如 1911。我们有 20 多个 Java 项目,全部通过父 pom.xml 连接,或通过从“主”父级继承的另一个父级连接。
构建在 TFS 上运行。根据项目的变化,所有依赖的项目都是自下而上构建的。因此,我将/必须实现已经在 parent.pom 中的逻辑,以便所有项目和派生的“子父母”都处理此逻辑。
maven - 如何更新父 POM 和相关子代?
首先是结构:我的父 POM 没有对子模块等的引用。有一个单独的 reactor-POM 包含该<modules>...</modules>
部分 - 并且反应器 POM 也是父 POM 的子级(反应器 POM 中列出的模块继承自父 POM)。
最后但并非最不重要的是它是一个 Eclipse/Tycho 构建。
现在,我想更新整个项目的版本。从父 POM 开始,第一个问题是:如果子模块在不同的 POM(反应器)中声明,我如何强制父的子模块更新父版本?
java - Maven 版本插件不考虑 rules.xml
我已将 Maven 版本插件包含到我的多模块项目中。
我还在rules.xml
项目根级别的专用文件夹中声明了一些规则。
当我运行mvn versions:update-properties -pl :foobar -DrulesUri=file:///${project.rootdir}/plugins/maven-versions-plugin/rules.xml
时,似乎没有考虑到规则。
这是规则集:
例如,我可以看到一个依赖项已更新为1.0.0-alpha-3
规则应禁止的版本。
所以我的第一个问题是我不知道插件是否真的考虑了规则集。运行相同的命令-X
并没有提供任何信息。
有任何想法吗?
maven - maven-version-rules.xml - 如何只处理一些工件?
Maven 版本插件可以使用 maven-version-rules.xml 文件过滤掉特定工件的不需要的版本。所以它更像是一个黑名单。
我想只处理包名以 com.xxx.yyy 开头的工件
可能吗?