maven - 具有非数字版本的 Maven 版本插件
问题描述
我目前正在实施一项 Jenkins 工作,其目标是调用 Maven 版本:显示依赖项更新,以便为我的依赖项找到最新的可用增量更新。
但是,该插件无法找到主要版本的依赖项的更新develop
。实际上,我在项目的依赖项中引用了其他内部项目,所有这些项目都从develop
版本开始,直到我们分支到发布分支,我们将在其中引用所需的发布版本。
我有一个专门的 POM 来管理这些版本,它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>groupid</groupId>
<artifactId>root</artifactId>
<version>develop-SNAPSHOT</version>
</parent>
<artifactId>external-dependencies</artifactId>
<packaging>pom</packaging>
<properties>
<dep1.version>2.3.18</dep1.version>
<dep1.majorversion>2.3</dep1.majorversion>
<dep1.version-range>[${dep1.majorversion}.0,${dep1.majorversion}.999)</dep1.version-range>
<dep2.version>develop.5</dep2.version>
<dep2.majorversion>develop</dep2.majorversion>
<dep2.version-range>[${dep2.majorversion}.0,${dep2.majorversion}.999)</dep2.version-range>
<dep3.version>1.0.1</dep3.version>
<dep3.majorversion>1.0</dep3.majorversion>
<dep3.version-range>[${dep3.majorversion}.0,${dep3.majorversion}.999)</dep3.version-range>
<versions.to.update>
dep1.version,
dep2.version
</versions.to.update>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dep1.group</groupId>
<artifactId>dep1.artifact</artifactId>
<version>${dep1.version}</version>
</dependency>
<dependency>
<groupId>dep2.group</groupId>
<artifactId>dep2.artifact</artifactId>
<version>${dep2.version}</version>
</dependency>
<dependency>
<groupId>dep3.group</groupId>
<artifactId>dep3.artifact</artifactId>
<version>${dep3.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.5</version>
<configuration>
<includeProperties>${versions.to.update}</includeProperties>
<allowMajorUpdates>false</allowMajorUpdates>
<properties>
<property>
<name>dep1.version</name>
<version>${dep1.version-range}</version>
</property>
<property>
<name>dep2.version</name>
<version>${dep2.version-range}</version>
</property>
</properties>
</configuration>
</plugin>
</plugins>
</build>
</project>
因此,当我运行时mvn versions:display-property-updates -DallowMajorUpdates=false
,结果会显示 的潜在更新dep1
,但不会显示dep2
. 但是,删除该allowMajorUpdates
选项会给我返回有关开发的潜在更新。
我的理解是 Maven 对版本格式做了一些假设,例如数字,所以它不理解develop
为有效版本并跳过执行。
最后,我希望能够使用该allowMajorUpdates
选项,因为我宁愿不检查依赖项的新发布版本(我们从其他渠道获取信息),但是我不会看到我的develop
更新。 ..
除了自己的比较规则之外,有没有办法让 Maven 检查像这样的格式develop
?
谢谢
解决方案
推荐阅读
- amazon-web-services - 无法从 cron 同步到 Amazon S3
- javascript - 需要在页面加载后触发一个函数(它适用于 jquery 但不是纯 javascript)
- python - 将基数 2(二进制)数转换为基数 10 在 python 中不能很好地工作
- javascript - 理解 JS 中静态属性的作用域
- django - django 帐户/登录覆盖
- node.js - 使用 Express 和 Multer 进行文件上传:获取随机名称和未知格式的文件
- hadoop - 由于 ssh 连接被拒绝,macOS 上的 hadoop 启动辅助名称节点失败
- c# - 使用 SSIS 数据流任务中的脚本组件将对象中的数据提取到 DataTable
- java - 如何使用链接的进度条在活动之间制作加载屏幕?(安卓工作室)
- java - Maven surefire/failsafe TestNG 7.4.0 并行错误'void org.testng.xml.XmlSuite.setParallel(java.lang.String)'