Как настроить формат тегов модуля расширения Maven?
В нашем репозитории SVN мы храним теги следующим образом:
trunk
project_a
project_b
branches
project_a
branch_x
branch_y
project_b
tags
project_a
1.0
1.1
project_b
1.0
Когда я запускаю плагин релиза Maven "prepare" в проекте A, по умолчанию он создает тег как "tags/project_a-xx", который не соответствует моей схеме именования тегов выше. Таким образом, я зависим от того, кто делает освобождение (то есть ошибочного человека), чтобы определить это и изменить тег на "tags/project_a/x.x". Как я могу сказать плагину выпуска использовать по умолчанию правильный формат?
Цель "подготовить" имеет параметр конфигурации tag, который заявляет об этом, но если я его установлю следующим образом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.1</version>
<configuration>
<tag>${project.artifactId}/${project.version}</tag>
</configuration>
</plugin>
... тогда созданный тег является "тегами/project_a/x.x-SNAPSHOT", то есть он использует номер версии до выпуска, а не номер версии выпуска. Hardcoding имя тега в POM тоже кажется неправильным.
Как я могу убедиться, что тег по умолчанию правильный?
Ответы
Ответ 1
Плагин release теперь поддерживает параметр конфигурации tagNameFormat
, который по умолчанию равен @{project.artifactId}[email protected]{project.version}
. В вашем случае вы можете сделать что-то вроде:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<tagNameFormat>@{project.artifactId}/@{project.version}</tagNameFormat>
</configuration>
</plugin>
Ответ 2
Похоже, что это невозможно, пока не исправлена одна из этих ошибок:
- MRELEASE-150: не удается добавить префикс к тегам без изменения версии (не запланировано)
- MRELEASE-159: поддержка шаблона для создания тега release (запланировано на 2.2)
- MRELEASE-259: укажите параметры конфигурации для тега/метки по умолчанию, которые будут использоваться при отпускании (не запланировано)
Ответ 3
Если вы проходите в releaseVersion, вы можете сделать это:
<tag>${project.artifactId}/${releaseVersion}</tag>