我目前正在实施一项 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
?
谢谢