2010-12-17 26 views
11

, böyle etiketler saklamak: Ben proje A Maven bırakma eklentinin "prepare" hedefi çalıştırdığınızdaMaven sürüm eklentisinin etiket formatı nasıl özelleştirilir? Bizim SVN repo olarak

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 

, varsayılan olarak "etiketleri/project_a-xx" olarak etiketi oluşturur, Yukarıdaki etiket adlandırma şemayla uyuşmuyor. Bu nedenle, bunu serbest bırakan kişiye (yani yanılabilir bir insana) bunu tespit etmek ve etiketi "tags/project_a/x.x" olarak değiştirmek için bağımlıyım. Sürüm formatını doğru formatı varsayılan olarak kullanmasını nasıl söyleyebilirim?

gol bunu iddia eden bir " tag" yapılandırma seçeneği vardır, ama bunu ayarlarsanız aşağıdaki gibi "hazırlamak":

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

... sonra oluşturulan etikettir "etiketleri/project_a/xx-SNAPSHOT ", yani sürümün sürüm numarası yerine yayın öncesi sürüm numarasını kullanır. Etiket adını POM'a kodlamak da yanlış görünüyor.

Etiketin varsayılan olarak doğru olduğundan nasıl emin olabilirim? Bu hataların bir giderilene kadar Şuna benzer

+0

bakınız [my comment] (http://stackoverflow.com/questions/4466714/how-to-customise-the-tag-format-of-the-: senin durumda, böyle bir şey yapabileceğini Aşağıdaki maven-release-plugin # comment21031508_13886493). Bu davranış v2.4'te tekrar bozuldu. Aslında, sürüm eklentisinin v2.1'i şu anda düzgün çalışan bir tanesidir. –

cevap

9

bırakma eklentisi şimdi @{project.artifactId}[email protected]{project.version} bu durumda varsayılan, tagNameFormatconfiguration option destekler.

<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

Not ** v2.1 ** bu davranışın doğru şekilde çalıştığı en son sürümdür. Bu sürümden beri, kod tabanı bozuk ve '-SNAPSHOT' sürümü kullanılıyor. Daha fazla bilgi için [bu hata] bölümüne bakın (http://jira.codehaus.org/browse/MRELEASE-695). –

+1

@ {project.version} alanındaki oturum açma işleminin önemli olduğunu unutmayın. Benzer görünen $ {project.version}, sadece pom.xml sürümünden alır. $ Ve @ 'nin önemi yok mu? – Josh

2

mümkün değildir:

  • MRELEASE-150: (planlanmamış) sürüm
  • MRELEASE-159 etkilemeden etiketlere önek eklenemiyor: Destek bir çıkış etiketi oluşturmak için desen (2.2 için planlanmıştır)
  • MRELEASE-259: (zamanlanmış değilken kullanıma sunulmak üzere varsayılan etiket/etiket için bir yapılandırma ayarları sağlayın) Eğer releaseVersion geçen varsa)
+2

MRELEASE-159, 2.2'de sabit olarak işaretlendi ve diğer iki bilet, kopyaları olarak işaretlendi. Artık SVN kullanmıyorum, ancak kabul edilen cevabı yeni tagNameFormat seçeneğini belgeleyen Lyle'a değiştirdim. –

0

, bunu yapabilirsiniz:

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