Liberação da MVN: Execute automaticamente especificar a tag SCM que inclui a versão de liberação
-
20-09-2019 - |
Pergunta
Eu gostaria de configurar meu lançamento do Maven para ser executado no modo em lote, mas não sou fã da tag SCM padrão ${artifactId}-${releaseVersion}
. Em vez disso, eu gostaria de simplesmente marcar com isso ${releaseVersion}
; No entanto, não estou claro se essa propriedade existe (ou seja, sem o sufixo -Snapshot).
Eu gostaria da configuração para se parecer com o código abaixo. Uma marcha padrão é possível com a plugina de liberação do maven?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
<configuration>
<tag>${releaseVersion}</tag>
</configuration>
</plugin>
Solução
Experimente isso:
<configuration>
<tag>${project.version}</tag>
</configuration>
Outras dicas
Acabei de fazer isso funcionar ao usar Hudson para fazer meu lançamento. Observei que o Hudson (com o plugin de liberação do Maven) está iniciando o comando com uma propriedade como -dproject.rel.com.example: my-artifact-id = 1.0.1. Usando a seguinte configuração do plug -in:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tag>REL-${project.rel.com.example:my-artifact-id}</tag>
</configuration>
</plugin>
Resultou na tag sendo Rel-1.0.1
Sou novo no plug -in de liberação, mas presumiria que algo semelhante funcionaria da linha de comando.
Você pode passar nas propriedades para:
ReleaseVersion-Qual versão você deseja que seja lançada como (1.0) DevelopmentVersion-a próxima versão (2.0-SNAPSHOT)-o nome da tag
Um 1.0-SNAPSHOT implica uma versão de versão 1.0, mas não a define. Você pode definir essa propriedade em seu arquivo POM como uma propriedade regular.