2010-12-17 16 views
11

W naszej SVN repo, możemy przechowywać znaczniki tak:Jak dostosować format znaczników wtyczki Maven Release?

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 

Kiedy uruchamiam „prepare” Celem Maven release pluginu na projekt jest domyślnie tworzy tag jako „Tagi/project_a-xx” który nie pasuje do powyższego schematu na mój tag. W związku z tym jestem zależny od tego, kto wykonuje uwolnienie (tj. Omylny człowiek), aby to zauważyć i zmienić tag na "tags/project_a/x.x". Jak mogę określić, czy wtyczka wydania ma domyślnie używać prawidłowego formatu?

W „przygotowanie” cel ma opcję „tag” konfiguracji, która twierdzi, aby to zrobić, ale jeśli ustawić go w następujący sposób:

<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> 

... potem stworzył tag jest „tags/project_a/xx-SNAPSHOT ", tzn. używa numeru wersji przedpremierowej zamiast numeru wersji Release. Kodowanie nazwy tagu w POM również wydaje się błędne.

Jak mogę się upewnić, że tag jest poprawny domyślnie?

+0

See [mój komentarz] (http://stackoverflow.com/questions/4466714/how-to-customise-the-tag-format-of-the- maven-release-plugin # comment21031508_13886493) poniżej. To zachowanie jest zepsute ponownie w wersji v2.4. W istocie, wersja 2 wtyczki wydania jest jedyną aktualnie działającą poprawnie. –

Odpowiedz

9

Wtyczka wersja obsługuje teraz tagNameFormatconfiguration option, który domyślnie @{project.artifactId}[email protected]{project.version}. W twoim przypadku, można zrobić coś takiego:

<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

Należy pamiętać, że ** v2.1 ** to najnowsza wersja, w której to zachowanie działa poprawnie. Od tego wydania baza kodu jest zepsuta i używana jest wersja '-SNAPSHOT'. Zobacz [ten błąd] (http://jira.codehaus.org/browse/MRELEASE-695) w celu uzyskania dalszych informacji. –

+1

Uwaga, ważne jest wpisanie znaku @ {project.version}. Podobny wygląd $ {project.version} właśnie pobiera wersję z pliku pom.xml. Nie mam znaczenia $ i @? – Josh

2

Wygląda na to, to nie jest możliwe, dopóki jeden z tych błędów jest stała:

  • MRELEASE-150: Nie można dodać przedrostek tagów bez wpływu na wersję (nie zaplanowane)
  • MRELEASE-159: wsparcie wzorzec generujący znacznik zwolnienia (zaplanowany na 2.2)
  • MRELEASE-259: Podaj ustawienia konfiguracyjne dla domyślnego znacznika/etykiety do użycia po zwolnieniu (niezaplanowane)
+2

MRELEASE-159 został oznaczony jako poprawiony w wersji 2.2, a pozostałe dwa bilety są oznaczone jako duplikaty. Nie używam już SVN, ale zmieniłem zaakceptowaną odpowiedź na Lyle, która dokumentuje nową opcję tagNameFormat. –

0

Jeśli jesteś przejazdem w releaseVersion, można to zrobić:

<tag>${project.artifactId}/${releaseVersion}</tag> 
Powiązane problemy