Как настроить формат тегов модуля расширения 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>