Учитывая, что у меня есть следующая зависимость для моего многомодульного CI:
<groupId>my_group</groupId>
<artifactId>artifact1</artifactId>
<version>2.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>my_group</groupId>
<artifactId>artifact2</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
На моем CI я хочу скомпилировать артефакт 2. Однако на моем dev я редко касаюсь его, и с момента компиляции этого Артефакт требует некоторых внешних зависимостей и значительного времени, я бы очень хотел пропустить его и использовать любой существующий последний выпуск.
До сих пор у меня был профиль, который отменял версию artifact2 с помощью RELEASE, например: use-release-artifact2 my_group artifact2 RELEASE
и локально я запускаю с -Puse-release-artifact2. Отлично.
Теперь maven3 не поддерживает псевдо-версии RELEASE и LATEST, и я пытаюсь найти решение, которое:
- не оставляет измененные файлы pom. xml на определяется как «измененный» git. в прошлом это приводило к тому, что разработчик непреднамеренно совершал неправильный файл. по той же причине я не могу просто добавить игнорирование в этот файл.
- не требует от разработчика соблюдения графика выпуска и замены параметров в строке «mvn clean install ...».
- не go через длинное разрешение, как это делают диапазоны версий.
- не заставляет меня фиксировать версию при каждом выпуске (кроме того, плагин версии не поддерживает переход к версии "next-1 "afaik).
есть идеи?
Уточнение:
Я вообще не хочу запускать сборку artifcat2 , Более того, artifact2 недоступен в 2.0.0-SNAPSHOT в хранилище, поскольку он еще не выпущен. Я действительно хочу взять последний выпуск (например, 1.5.7) из репозитория, чтобы скомпилировать артефакт1 против этого.