Интерполяция версии проекта Maven из файла свойств - PullRequest
0 голосов
/ 08 ноября 2019

Мы некоторое время используем Maven в нашем проекте и хотим немного автоматизировать процесс выпуска. мы пришли к следующей идее, так что версия будет поддерживаться разработчиками или в SCM, а не в инструменте DevOps, как jenkins / bamboo.

Любой, кто следует ниже, обрабатывает вместо установки значения интерполяции в аргументах как «mvn». install -Dapp.version = 1.0.0-SNAPSHOPT "

Процесс, которому мы хотели бы следовать, заключается в предоставлении версии проекта Maven через внешний файл свойств.

Давайте предположим следующее частичное POM. xml выдержка как пример.

<project>
    <groupId>com.home.diary</groupId>
    <artifactId>journal</artifactId>
    <version>${app.version}</version>
    <packaging>war</packaging>
</project>

давайте предположим, что у меня есть файл version.properties в моем SCM со следующим содержимым

app.version=2.0.0-RELEASE

во время выполнения цели mvn

mvn install

Я хочу, чтобы артефакт был сгенерирован как

journal-2.0.0-RELEASE

Я пытался использовать плагин properties-maven-plugin из org.codehaus.mojo, как описано здесь Как прочитать файл внешних свойств в Maven , но он не работает.

Кто-нибудь делал это? не могли бы вы поделиться своей реализацией / идеями?

1 Ответ

1 голос
/ 08 ноября 2019

Это невозможно.

Прежде всего: Почему бы просто не управлять версией в самом теге <version>? Это самая простая вещь, которая отвечает вашим требованиям (разработчик управляет версией в SCM).

Если вы этого не хотите, вам нужно указать версию либо в самом POM, либо через командную строку. ,Чтение внешних свойств с помощью чего-то вроде плагина свойств maven всегда будет происходить слишком поздно , т.е. после того, как тег версии уже прочитан.

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