Я не знаком с процессом jgitflow, и я постараюсь прочитать об этом и адаптировать свой ответ, но сейчас я хотел бы указать вам на эту действительно замечательную статью о развертывании maven - Maven Плагин релиза: Dead and Buried . В статье рассказывается об использовании внешне установленной версии в их pom-файле - они встраивают свойство «вменяемое по умолчанию» в свою кодовую базу.
<properties>
<!-- Sane default when no revision property is passed in from the commandline -->
<revision>0-SNAPSHOT</revision>
</properties>
Затем они ссылаются на это свойство в своем <build>
описании
<build>
<plugins>
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.4</version>
<configuration>
<tag>${project.artifactId}-${project.version}</tag>
</configuration>
</plugin>
</plugins>
</build>
При вызове maven они передают ему пользовательский параметр со своего CI-сервера - mvn deploy scm:tag -Drevision=$BUILD_NUMBER
Я уверен, что с плагином jgitflow вы можете иметь внутреннее свойство, аналогичное описанной выше конфигурации, но используйте его как часть вашей версии jgitflow с информацией о ветвях, передаваемой в вашу сборку.
--- Ответ на отзыв ---
Если вы просто пытаетесь извлечь последнюю часть идентификатора ветви, есть несколько способов сделать это. Если вы просто хотите все после последнего /
, вы можете использовать утилиту basename
.
$ BRANCH="origin/feature/JIRA-0101"
$ basename $BRANCH
JIRA-0101
Вы могли бы быть более конкретным с регулярным выражением, которое ожидает шаблон стиля ASDF-1234
$ echo $BRANCH | sed -e 's|.*/\([A-Z]*-[0-9]*\)$|\1|g'
JIRA-0101
И если вы хотите записать вышеизложенное в новую переменную, вы можете использовать подоболочку, либо прямо в вызове maven
mvn clean install -Dbranch=$(echo $BRANCH | sed -e 's|.*/\([A-Z]*-[0-9]*\)$|\1|g')
Или сохранить его в промежуточной переменной, которую вы можете проверить, чтобы проверить, имеет ли ненулевая длина
JIRA_ID=$(echo $BRANCH | sed -e 's|.*/\([A-Z]*-[0-9]*\)$|\1|g')
[[ -z "${JIRA_ID}" ]] && echo "Unable to determine JIRA_ID" && exit 1
mvn clean install -Dbranch=${JIRA_ID}
Если вам нужно передать переменную на другой шаг (если непосредственно используется плагин maven), вам понадобится плагин, подобный плагину среды envinject , описанному в этот ответ