Skip to end of metadata
Go to start of metadata

Estamos assumindo que você já tenha seu ambiente de desenvolvimento montado. Sendo o caso, a compilação de um módulo pode ser resumida nos seguintes passos:

  1. Trazer os fontes do sistema do controle de versão (SVN)
  2. Compilar e gerar os componentes do módulo desejado

Apenas para efeito didático, estamos assumindo que o módulo a ser trabalhado é o coree que o desenvolvimento está sendo feito no trunk do projeto.

Check-Out Inicial do Subversion

Primeiramente, é necessário criar um diretório de trabalho, ujo nome deve indicar o módulo que será trabalhado. Em seguida, faça o checkout a partir do SVN Tecgraf. 

 

[user@host:~/dev] mkdir my-ju-core-trunk
[user@host:~/dev] cd my-ju-core-trunk
[user@host:~/dev/my-ju-core-trunk]
 
[user@host:~/dev/my-ju-core-trunk] 
svn co https://subversion.tecgraf.puc-rio.br/engdist/javautils/core/trunk .
 

No comando acima, vale observar:

  • URL do subversion do Tecgraf: https://subversion.tecgraf.puc-rio.br
  • Repositório do grupo de sistemas distribuídos: engdist
  • Diretório do projeto: javautils
  • Diretório do módulo: core (core é o nome do módulo desejado para o checkout)
  • Diretório da versão mais atual (desenvolvimento); isto é, o trunk


No caso de você estar em um ambiente aonde exista proxy de acesso a internet, verifique detalhes do seu ambiente com o administrador do seu sistema.

 

Compilação

Após o checkout do código-fonte, o diretório de trabalho contém, tipicamente, um diretório src com os fontes e o arquivo pom.xml, de definição Maven.

[user@host:~/dev/my-ju-core-trunk] ls -lg
-rw-r--r-- 1 tecgraf 1261 Jun 30 14:16 pom.xml
drwxr-xr-x 5 tecgraf 4096 May 21 10:26 src

 

Para compilação, basta digitar: mvn compile.

Após executar esse comando, surgirá um diretório target/classes com as arquivos class resultantes da compilação.

 

[user@host:~/dev/my-ju-core-trunk] mvn compile
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.939s
[INFO] Finished at: Mon Jun 30 14:18:54 BRT 2014
[INFO] Final Memory: 9M/114M
[INFO] ------------------------------------------------------------------------



[user@host:~/dev/my-ju-core-trunk] ls -lg target
total 12
drwxr-xr-x 3 tecgraf 4096 Jun 30 14:18 classes
drwxr-xr-x 3 tecgraf 4096 Jun 30 14:18 generated-sources
drwxr-xr-x 3 tecgraf 4096 Jun 30 14:18 maven-status

 

Caso seja necessário, pode-se usar o comando package para produzir um jar do módulo.

 

[user@host:~/dev/my-ju-core-trunk] mvn package
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.755s
[INFO] Finished at: Mon Jun 30 14:24:58 BRT 2014
[INFO] Final Memory: 13M/114M
[INFO] ------------------------------------------------------------------------


[user@host:~/dev/my-ju-core-trunk] ls -lg target
total 92
drwxr-xr-x 3 tecgraf  4096 Jun 30 14:18 classes
drwxr-xr-x 3 tecgraf  4096 Jun 30 14:18 generated-sources
drwxr-xr-x 3 tecgraf  4096 Jun 30 14:24 generated-test-sources
-rw-r--r-- 1 tecgraf 59047 Jun 30 14:24 javautils-core-2.0.1-SNAPSHOT.jar
drwxr-xr-x 2 tecgraf  4096 Jun 30 14:24 maven-archiver
drwxr-xr-x 3 tecgraf  4096 Jun 30 14:18 maven-status
drwxr-xr-x 2 tecgraf  4096 Jun 30 14:24 surefire
drwxr-xr-x 2 tecgraf  4096 Jun 30 14:24 surefire-reports
drwxr-xr-x 3 tecgraf  4096 Jun 30 14:24 test-classes

 

Ao usar o comando package, o maven, além de garantir a compilação do projeto, roda os seus testes unitários (se houver). Em seguida, produz um arquivo jar com base nas definições correntes do pom. Como estamos no trunk, o arquivo jar conterá, em seu nome, um sufixo indicativo de uma versão futura (ainda não lançada) e o texto "-SNAPSHOT". O indicativo de snapshot mostra, claramente, que este jar não deve ser distribuído para produtos finais estáveis, pois é fruto de uma compilação direta no trunk.

Você pode, caso se sinta mais à vontade, limpar o conteúdo da compilação e empacotamento local com o comando "mvn clean". Este equivale a remover todo o diretório target.

Boa sorte!!!

  • No labels
Write a comment…