В настоящее время я выполняю работу Jenkins, целью которой является вызывать версии Maven: display-dependency-updates, чтобы найти последние доступные инкрементные обновления для моих зависимостей.
Однако плагин не справляется найти обновления для зависимостей, для которых основная версия похожа на 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?
Спасибо