Duvida - Maven gerar versão da aplicação

Boa noite pessoal,

É possível gerar de forma automática o numero da versão da aplicação web?
Hoje sempre é gerado “version = 1.0.0” e no arquivo pom.xml tenho que ficar mudando isso de forma manual.

<modelVersion>4.0.0</modelVersion>
<groupId>com.empresa.api</groupId>
<artifactId>app.api</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<name>app.api</name>

Agradeço ajuda!

É necessário configurar o plugin Maven Release a partir dele você consegue ao gerar um build pelo maven informar a nova versão ou mesmo conectar o seu SCM para recuperar uma versão.

Att.,

Silas

Caso esteja utilizando o Git, uma boa opção para este fluxo é o plugin do jGitFlow.

O plugin ficaria assim:

<plugin>
    <groupId>external.atlassian.jgitflow</groupId>
    <artifactId>jgitflow-maven-plugin</artifactId>
    <version>1.0-m4.3</version>
    <configuration>
      <pushReleases>true</pushReleases>
      <flowInitContext>
        <masterBranchName>master</masterBranchName>
        <developBranchName>development</developBranchName>
        <featureBranchPrefix>feature-</featureBranchPrefix>
        <releaseBranchPrefix>release-</releaseBranchPrefix>
        <hotfixBranchPrefix>hotfix-</hotfixBranchPrefix>
        <versionTagPrefix>v-</versionTagPrefix>
      </flowInitContext>
        <username>usuário_do_seu_git</username>
        <password>senha_do_seu_git</password>
    </configuration>
</plugin>

A execução do plugin é:

mvn jgitflow:release-start jgitflow:release-finish -DpullDevelop=true -DreleaseVersion=${versao.release} -DdevelopmentVersion=${proxima.versao.desenvolvimento} -Dmaven.javadoc.skip=true -X

O meu caso, ${versao.release} e ${proxima.versao.desenvolvimento} são variáveis de entrada no meu Jenkins.
Ao rodar o plugin, ele gera um pacote de versão e publica no meu Nexus e já altera todos os pom.xml do projeto pra próxima versão informada.

Caso não conheça o “padrão” definido pelo GitFlow, sugiro a leitura deste artigo.

Cara a empresa utiliza Amazon AWS e não quer integrar com Git, achei que teria como gerar essa versão apenas com getTime() por exemplo, sem plugin.

Obg.

Um mvn versions:set não resolveria?

mvn versions:set -DnewVersion=2.50.1-SNAPSHOT