Использование версий Maven Dynami c для выпуска библиотеки - PullRequest
1 голос
/ 10 марта 2020

Начиная с Maven 3.5.0, можно использовать некоторые переменные внутри тега <version>: https://maven.apache.org/maven-ci-friendly.html

Допустим, у меня есть <version>${revision}</version> в проекте библиотеки ( он создает jar для использования в других проектах, это не просто веб-приложение или пакетное приложение).

Когда я собираю и публикую sh моя библиотека v1.0.0 (mvn deploy -Drevision=1.0.0-release), артефакт с именем "my-library-1.0.0-release.jar", но метаданные pom. xml внутри jar по-прежнему находятся на <version>${revision}</version>. Существуют ли случаи, когда это может сделать мою библиотеку непригодной для использования?

РЕДАКТИРОВАТЬ: тот же вопрос, если моя библиотека опубликована в репозитории SNAPSHOT и используется оттуда как зависимость от других проектов.

1 Ответ

3 голосов
/ 10 марта 2020

Будут проблемы с использованием вашей библиотеки в качестве зависимости и публикацией в общем хранилище артефактов (например, Maven Central), потому что ваш pom.xml не соответствует версии артефакта. Возможно, некоторые репозитории артефактов будут работать (например, локальный прокси-сервер Artifactory с пользовательской конфигурацией), но он вызывает проблемы.

Это упоминается в версиях Maven CI Friendly , на которые вы ссылались, в разделе "Установить / Глава «Развертывание», в которой предлагается использовать flatten-maven-plugin :

Если вы хотите установить или развернуть артефакты с помощью описанных выше настроек, вы должны использовать flatten-maven-plugin, иначе вы будете устанавливать / развертывать артефакты в своем хранилище, которые больше не будут использоваться Maven.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...