2010-12-17 2 views
11

В нашей SVN репо, мы храним теги, как это:Как настроить формат тегов модуля расширения Maven?

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 

Когда я бегу «prepare» цель Релизов плагина Maven на проекте А, по умолчанию он создает тег как «теги/project_a-хх», который не соответствует моей схеме именования тегов выше. Таким образом, я зависим от того, кто делает освобождение (то есть ошибочного человека), чтобы определить это и изменить тег на «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/xx-SNAPSHOT ", то есть вместо номера версии выпуска используется номер версии перед выпуском. Hardcoding имя тега в POM тоже кажется неправильным.

Как я могу убедиться, что тег по умолчанию правильный?

+0

См [мой комментарий] (http://stackoverflow.com/questions/4466714/how-to-customise-the-tag-format-of-the- maven-release-plugin # comment21031508_13886493) ниже. Это поведение снова нарушается в версии 2.4. Фактически, v2.1 плагина выпуска является единственным, который в настоящее время работает правильно. – 2013-02-20 10:39:52

ответ

9

Плагин релиз теперь поддерживает tagNameFormatconfiguration option, который по умолчанию @{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> 
+1

Обратите внимание, что ** v2.1 ** - это последняя версия, в которой эта работа работает правильно. Начиная с этого выпуска, база кода сломана и используется версия `-SNAPSHOT`. См. [Эту ошибку] ​​(http://jira.codehaus.org/browse/MRELEASE-695) для получения дополнительной информации. – 2013-02-20 10:39:02

2

Похоже, что это невозможно, пока одна из этих ошибок не будет устранена:

  • MRELEASE-150: Невозможно добавить префикс к тегам, не затрагивая версию (не регламентного)
  • MRELEASE-159: поддержка A шаблон для генерации метки релиза (запланировано на 2.2)
  • MRELEASE-259: Укажите настройки конфигурации для тега/метки по умолчанию для использования при освобождении (не запланировано)
+2

MRELEASE-159 отмечен как фиксированный в 2.2, а два других билета отмечены как дубликаты. Я больше не использую SVN, но я изменил принятый ответ на Lyle, который документирует новый параметр tagNameFormat. – 2012-12-17 09:00:52

0

Если вы передаете в releaseVersion, вы можете сделать это:

<tag>${project.artifactId}/${releaseVersion}</tag> 

 Смежные вопросы

  • Нет связанных вопросов^_^