我目前正在实现一个Jenkins作业,其目标是调用Maven版本:显示依赖项更新,以便找到我的依赖项的最新可用增量更新。
但是,该插件无法找到与主版本类似的依赖项的更新
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对版本格式做了一些假设,比如数字,所以它不理解
发展
作为有效版本,并跳过执行。
最后,我希望能够使用
AllowMajorUpdate
选项,因为我不希望检查依赖项的新发布版本(我们从其他渠道获得信息),但这样我就不会得到我的
发展
更新看到。。。
有没有办法让Maven在自己的比较规则之上检查这样的格式
发展
?