Я нашел немало намеков о 0MB, 0M, MULL, многопроектных, родительских POM и т. Д., Но все они не совсем соответствуют тому, что я есть:maven релиз плагин и несколько проектов в отдельных хранилищах git с Jenkins
у меня есть несколько проектов (уменьшенный случай два: project-common
и project-impl
), которые несколько отдельно друг от друга, и разработан в отдельных GIT хранилищ, но обычно выпускается вместе. Для этой цели project-common/pom.xml
содержит:
<groupId>de.tarent.example</groupId>
<artifactId>project-common</artifactId>
<version>1.5.1.4-SNAPSHOT</version>
... и project-impl/pom.xml
содержит:
<groupId>de.tarent.example</groupId>
<artifactId>project-impl</artifactId>
<version>1.5.1.4-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>de.tarent.example</groupId>
<artifactId>project-common</artifactId>
<version>${project.version}</version>
</dependency>
Существует нет родитель POM.
Идея здесь состоит в том, чтобы обычно использовать версию project-common
для всех, но иметь возможность делать отдельные релизы только одного проекта; в этих случаях версия зависимости, конечно же, должна быть изменена вручную, но это нормально.
Теперь мы используем Jenkins «Perform Maven Release» для создания наших релизов. (Ну, мы хотим. Проекты до недавнего времени не были выпущены, поэтому наши разработчики построили их вручную, в комплекте с временными файлами, неиспользуемыми файлами, локальными изменениями, паролями LDAP в конфигурациях XML, редакторами .swp
и т. Д. - вы можете видеть поэтому мне было поручено изменить это, несмотря на не зная Java ™ или Maven или Дженкинс. или, может быть, из-за него.)
выпуск project-common
идет без сучка и задоринки, но project-impl
терпит неудачу в самом первом чтобы убедиться, что нет зависимостей SNAPSHOT. Хорошо, дух. (Нет ни одного, кроме project-common
.) Переопределение maven-release-plugin
, чтобы пропустить проверку SNAPSHOT невозможно. Использование родительского ПОМ здесь тоже не работает, так как это полностью отдельные репозитории и, иногда, освобождаются независимо. Итак, как это сделать, сохраняя комфорт Jenkins и Maven Release?
Продолжить на: Ответ на свой вопрос - поделитесь своими знаниями, Q & A-стилем ...