问题标签 [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 - 版本中的 excludesList 参数用法:update-properties
我的 pom 中有以下内容:
我想使用exludesList
(or includesList
) 来更新 only 的版本x
(并保留y
并z
手动更新)。
我做了以下事情:
我正在运行以下命令(更新所有内容):
mvn -U versions:update-properties -e scm:diff -e "-Dmessage=updated version numbers" scm:checkin
我试图通过仅使用一项似乎仅用于命令行的项目来简化它,如此excludes
处所述:excludesList
尽管我使用的方式与此处使用的方式相同,但它不起作用。我不确定我使用的不是正确的位。
我也尝试添加-Dexcludes=y_groupId:y_artifactId*
到命令中,但它似乎也不起作用。
注意:以上是简化版,我有很多模块,我不想编辑我的命令,我需要在 pom.xml 中做所有事情。
java - 版本:use-releases 为特殊的dependencyManagement 条目抛出空指针异常
如果我们调用versions:use-releases
一个 pom,其中一个 dependencyManagement 条目没有版本标签(例如,因为它只设置范围或排除项),我们会得到一个空指针异常。以以下示例 pom 为例:
然后调用versions:use-releases
导致异常:
知道为什么会这样吗?
maven - mvn 版本中的错误:设置插件?
假设我有一个多模块项目
现在在 A 的 pom.xml 中,在依赖管理下,我有以下依赖:
在 B 的 pom.xml 中,我使用了上述依赖项。
现在假设我在根 pom.xml(A 的 pom.xml)上运行以下命令
此命令仅设置父模块和子模块版本的版本(但不会更新依赖项),这与预期的一样。
现在,如果我想运行以下命令并处理依赖项,如下所示:
现在它不处理依赖关系。如果我使用 processDependencies=true 运行第一个命令,它将更新依赖项。我无法理解为什么第二次运行它不处理依赖项?对我来说听起来像是版本插件上的错误。
maven - versions-maven-plugin 中奇怪的 maven 版本范围
我看到了 [1.1,2.0) 或 [1.1,) 的范围,但这意味着什么:
这是-!
特定[1.4,1.4.1-!)
于 version-maven-plugin 的吗?它的目的是什么?
maven - Maven 版本插件是否也从类路径中读取规则?
Maven 版本插件支持定义规则以自定义目标的版本解析过程为versions:display-plugin-updates
或versions:display-dependency-updates
. 规则文件的位置可以由 Maven Wagon 指定,其rulesUri
背后的功能由 Maven Wagon 提供。
因此我想知道是否也支持在 Jar 中提供规则集?我想为多个项目设置一个规则。
java - Maven - Artifactory:使用 buildNumber 更新依赖项
我已经开始在一家使用 buildNumber 概念的公司工作。他们打开一个发布分支,例如版本设置为 1.0.2-build1。
下次他们生成工件并部署它时,他们会增加这个数字,所以 1.0.2-build2。
当代码准备好部署到生产环境时,它们会消除 -buildNumber 并生成一个新标签。
如果我们有版本 1.2.0-build7 和版本 1.2.0 以及在 Jfrog Artifactory 下生成的工件,最后一个可用的版本是 1.2.0 但带有工件的 Maven,如果我尝试使用版本插件从我的 pom.xml,插件知道最后一个版本是 1.2.0-build7,而不是之前生成的最后一个标签。
有人知道如何处理这种情况吗?我正在努力解决它,但没有成功。
谢谢大家!
maven - maven - 从 pom.xml 中的属性标记中删除 -SNAPSHOT
我的应用程序的父 pom.xml 包含以下代码段:
本质上,我想将两个 -SNAPSHOT 版本都更新为发布版本。即,我希望我的结果 pom.xml 像:
[注意:v1.0<property.version>
尚未部署到工件,也可能不是可用的最新版本
。我不想更新到发布版本的 SNAPSHOT 版本可能存在更多属性]
我想出了一种更新<version>
使用maven 版本的方法:set plugin。但是,我找不到任何更新<properties>
标签内版本的解决方案(通过删除 -SNAPSHOT)。
我查看了版本的文档:update-properties,versions:update-property。
我试图通过使用 mvn 版本插件来实现这一点,否则我将不得不编写一个脚本(例如 shell)来解析并执行必要的操作。
java - Maven:versions:update-parent 后跟 install 安装旧版本
我有以下两个 Maven 项目
--
只有定义工件版本的地方是父级。其他项目或其模块直接或间接地从父项目继承版本。我想自动将聚合版本及其模块版本与父级匹配。
在我升级父版本和mvn install
它之后,我正在尝试使用versions-maven-plugin来升级聚合项目和它的模块来匹配新的父版本与以下命令:
mvn versions:update-parent versions:update-child-modules clean install
聚合父级和模块父级已正确升级,但安装目标仍会安装 version-maven-plugin 所做更改之前的版本。如果我想安装升级版,我必须在插件mvn clean install
之后单独调用。versions
为什么不在同一命令中选择插件install
所做的那些更改?versions
我也尝试过versions:commit
无效。这是显示正在发生的事情的构建日志。
maven - Maven:pin 依赖版本,其中依赖由 BOM 管理
我们使用Maven BOM来管理一套库的依赖关系。BOM 的dependencyManagement 部分通常使用版本范围来指定这些库的版本,例如,[2.0,2.1)
使用BOM 的Child pom.xml 不指定这些托管依赖项的版本。(编辑澄清:我们对第三方依赖项使用特定版本,范围用于正在开发的内部库,其中版本可以快速更改。我们定义版本范围以确保这些库之间的广泛兼容性,即都在同一个主要版本。)
(请注意,这不是一个多模块项目。使用 BOM 机制的库和服务项目只是将其声明为父级并从 Nexus 存储库中提取它。它们不是一起构建的。)
我们还有一些构建系统脚本,它们使用versions:resolve-ranges来固定出现在我们的库和服务pom.xml(不是BOM 的pom.xml)中的依赖项的版本。这些具有已解析范围的 pom.xml 被签入到源代码管理并标记,因此如果我们需要将部署回滚到早期版本,我们可以使用该标记的 pom.xml 来构建使用相同依赖项版本的构建原始构建,即使现在可以使用较新版本的依赖项(因此resolve-ranges
如果我们重新运行它会提供较新版本)。
我刚刚注意到这两种机制不能很好地协同工作。在库或服务 pom.xml 上运行versions:resolve-ranges
仅解析该 pom.xml 中的范围。依赖管理下的版本仍未指定,所以如果我们使用这个 pom.xml 进行新构建,我们将在构建时获得范围内的最新依赖版本。不是我们想要的!
有没有办法使用versions:resolve-ranges
(或任何其他插件或技术)来解析托管版本并将它们粘贴到子 pom.xml 中?
这是一个人为的例子。
物料清单:
使用 BOM 的子项目(一个托管依赖项,一个非托管):
mvn dependency:tree
显示依赖项的有效版本的片段:
[信息] com.maventest:mytest:jar:1.0-SNAPSHOT
[信息] +- commons-lang:commons-lang:jar:2.3:compile
[信息] \- junit:junit:jar:3.8.2-brew:test
mytest pom.xml 之后的依赖部分mvn versions:resolve-ranges
:
因此,正如预期的那样,解决了非托管依赖项。但托管的不是。我怎样才能让它也得到解决?
maven - Exclude release candidates in Versions Maven Plugin
How can I configure the Versions Maven Plugin to exclude release candidates of certain dependencies? The versions of the dependencies in question have following format:
E.g. 4.6.5.2
or 4.6.7.0-rc10
. So release candidates are only distinguised by their additional suffix. There is no separate maven repository etc.
I'm using org.codehaus.mojo:versions-maven-plugin in version 2.5.