quinta-feira, 21 de março de 2013

Maven: propriedades no pom. Como definir a versão ou data de release na aplicação automaticamente?

É comum em muitas aplicações colocar a versão ou a hora do release na tela inicial (ou pagina se for um sistema web). Fazer isso automaticamente as vezes é complicado por causa do número da versão.

O Maven é muito bom para fazer isso e simplifica o processo. Há muito tempo utilizo isso nos meus sistemas e o How-To está abaixo.


Para configurar o maven para trocar propriedades da aplicação quando construir, como número de versão e horário do deploy, é necessário fazer 3 coisas:


1. Configurar a filtragem dos recursos
<project>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    ...
  </build>
</project>
2. Declarar uma variável no arquivo
myprop1 = somevalue
myprop2 = ${foo.bar}
3. Especificar no pom a propriedade desejada
<properties>
    <foo.bar>othervalue</foo.bar>
</properties>
Quando vc executar o maven irá trocar os valores.
$ mvn process-resources
[INFO] Scanning for projects...
...
$ cat target/classes/my_config.properties 
myprop1 = somevalue
myprop2 = othervalue

Hora e versão do deploy

Especificamente para trocar a hora do deploy e a versão da aplicação, as seguintes tags devem ser usadas dentro da definição da propriedade no pom:
  • Hora: <build.timestamp>${maven.build.timestamp}</build.timestamp>
  • Formato da Hora: <maven.build.timestamp.format>dd/MM/yyyy - HH:mm</maven.build.timestamp.format>
  • Versão: <build.project.version>${project.version}</build.project.version>

Além de data e hora

Essas propriedades são muito interessantes para se criar perfis. Com elas pode-se, por exemplo, colocar a senha de desenvolvimento em um perfil e a senha de produção em outro, sendo trocadas automaticamente durante a construção.

Referências

http://stackoverflow.com/questions/3868310/how-can-i-change-a-properties-file-in-maven-depending-on-my-profile

Nenhum comentário:

Postar um comentário

Obrigado por deixar seu comentário. Em breve ele estará publicado.