Build de aplicações em Java no TFS 2013

Salve, salve galera,

Hoje vamos ver como podemos fazer a configuração do servidor de build do TFS para trabalhar com aplicações em Java.

O primeiro ponto que temos que entender e que gera a maior quantidade de dúvidas quando falamos de build de aplicacões em Java no TFS é que o MSBuild não é o responsável pelo Build propriamente dito. Quem faz esse trabalho são os motores de build (Maven ou Ant), o MSBuild trabalha em conjunto coletando algumas informações e fazendo o meio de campo entre o servidor de Build e as motor (e suas configurações), porém o responsável pelo build são os motores de build (por exemplo Maven ou o Ant). Por que estou dizendo isso ? Existe um grande questionamento ( e aqui não digo apenas da equipe tecnica mas também de gestores, diretores e etc) sobre “o que é possível se fazer no build de aplicações em Java no TFS que me faria adota-lo ?”.

Se adotarmos um template de build padrão, tudo o que fazemos hoje realizando o build manual das aplicações nós conseguimos fazer, basta que esteja tudo configurado (e muito bem configurado). Em alguns cenários de adoção de build de aplicações em Java a equipe já tem tudo configurado no motor, toda a sequência de passos, e etc. Quase tudo (nunca digo tudo, por que sempre temos restrições tecnicas) é aproveitado pelo casamento em motor de build e TFS build.

Mas deixa de “bla-bla-bla” e vamos configurar nosso ambiente.

Para configurar nosso ambiente vamos seguir os seguinte:

  1. Quando falamos de aplicações em Java o primeiro passo é a instalação do JDK (Java Development Kit), nada muito diferente do que passamos com relação ao .NET Framework.
  2. O segundo passo é a configuração do Maven ou Ant de acordo com a necessidade do projeto.
    Obs: Maven e Ant são os responsáveis pela automação da compilação principalmente de projetos em Java, trazendo para a nossa realidade são análogos ao MSBuild. Assim como o MSBuild interpreta os XMLs dos projetos ou da solução no processo de build ambos fazem isso com seus respectivos arquivos.
  3. O próximo passo, é onde a mágica acontece, precisamos fazer a instalação do TFS 2013 Build Extensions ( disponível aqui) esse recurso é responsável por fazer a intermediação entre o motor de build escolhido e o servidor de build do TFS.

Agora precisamos configurar algumas variáveis de ambiente no servidor de build que são:

JAVA_HOME: padrão nos ambiente de desenvolvimento Java, aponta para o diretório de instalação do JDK.

M2_HOME ou ANT_HOME: apontam para o diretório onde estão os arquivos e configurações do Maven ou ANT respectivamente, de acordo com o recurso utilizado.

Feito isso precisamos editar a variavel de ambiente Path inlcuindo no final dela:


;%JAVA_HOME%\bin;%M2_HOME%\bin ou ;%JAVA_HOME%\bin;%ANT_HOME%\bin (de acordo com o recurso utilizado).

Bom galera com isso teremos nosso ambiente apto para fazer build de aplicações em Java. Agora vamos criar uma definição de build para consumir esse ambiente.

Vamos acessar o Team Explorer pelo Eclipse e criarmos uma nova definição de Build que atenda a nossa necessidade. Para isso podemos seguir os seguinte passos:

Criar uma nova definição de Build.

Nova Build Definition

 

Na opção “Project File” selecionar o projeto que iremos realizar o buil.

Projeto

 

Podemos observar na imagem acima que há um alerta referente a não existência do TFSBuild.proj, eu havia comentado que o MSBuild trabalha em conjunto com o Maven ou Ant, para isso então é necessário que haja um projeto (padrão .NET) para o MSBuild interpretar nesse momento quando clicarmos em Create esse projeto será criado e iremos o configurar, esse projeto fica armazenado no version control do projeto que estamos trabalhando.

Quando clicarmos em Create será exibido a seguinte opção

Build

É agora que iremos informar se utilizaremos o Maven ou Ant no nosso projeto, no caso desse exemplo vou selecionar o Maven, mas os próximos passos são semelhantes para ambos.

Depois de selecionado qual motor utilizaremos seremos questionados sobre qual arquivo de configuração de build utilizaremos

XML

Pessoal vale lembrar que podemos ter N arquivos de configuração dependendo da estratégia de build da empresa, então fiquem atentos ao selecionar o arquivo de configuração. Outra questão é que esses arquivos precisam estar versionados para podermos utiliza-los.

A próxima e última configuração é referente as dependências do build.

Dependências

Podemos entender essas dependências como as nossas variáveis de ambiente que configuramos no servidor. Mas então por que existe essa opção ? Podemos ter projetos Java que dependem do JDK 5, outros projetos dependem do JDK 6 e um projeto do JDK 7 essencialmente, ou seja, não podemos realizar o build das aplicações em versões diferentes, por isso, precisamos ter no servidor todos esses JDKs, ou mesmo versões do motor de build diferentes (por questões técnicas, dependências ou as vezes exigência da empresa), então aqui podemos ter alem das variáveis padrões outras variáveis que contenham essas versões diferentes. Aqui estamos falando em atender um cenário de múltiplas aplicações em múltiplas versões de JDK em um único servidor de build, algo que quase nunca acontece, não é ?

Feito isso temos a nossa definição de build configurada e pronta para ser executada.

Espero que tenha ajudado pessoal, caso tenham alguma dúvida é só avisarem.

Referências:

https://msdn.microsoft.com/en-us/library/jj155784.aspx

 
Comments

No comments yet.