Template para criação de projeto com o Maven2
Para criar um projeto novo usando o Maven é bem rápido, bastam alguns passos para que o projeto esteja pronto e configurado com a sua IDE preferida.
Neste post vou descrever o passo-a-passo para a criação de um projeto WAR. Os passos de execução podem precisar de pequenos ajustes para que seja executado no seu ambiente de desenvolvimento.
As características do meu projeto são: Projeto Web, Struts, jUnit.
O Maven tem a capacidade de resolver todas as dependências do projeto a partir do arquivo pom.xml e desta forma fará o download de todas as dependências, no meu caso todos os Jar´s do Strut´s e do jUnit, bem como todas suas dependências, automaticamente.
Para realizar esta tarefa o Maven pode precisar acessar seu repositório padrão, e para tanto uma conexão com a internet é necessária. Como no meu ambiente de trabalho as conexões com a internet são realizadas através de Proxy HTTP, então um passo adicional precisa ser realizado para indicar ao Maven que suas requisições utilize o Proxy configurado, e fornecendo usuário e senha, caso existam.
Não vou descrever o processo de instalação do Maven, que é bem simples. Considero que para continuar você possui o Maven2 instalado e que o diretório $MAVEN_HOME/bin esteja no PATH da máquina.
1. Proxy HTTP (Opcional)
Editar o arquivo $MAVEN_HOME/conf/settings.xml
<settings>
…
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>proxy.mycomp.com</host>
<port>8080</port>
<nonProxyHosts>mycomp.com, localhost</nonProxyHosts>
</proxy>
</proxies>
…
</settings>
2. Criando o template do projeto
Neste passo vou criar o diretório que servirá como raiz do meu projeto, seguindo uma estrutura definida qualquer:
- #cd $USER_HOME/projetos
- /export/home/fsantos/projetos# mkdir –p testewar/modules
- /export/home/fsantos/projetos# cd testewar/modules
- …/testewar/modules# mvn archetype:create -DgroupId=com.mycompany
-DartifactId=portal -DarchetypeArtifactId=maven-archetype-webapp
Em promeiro lugar foram criados três diretórios, dois deles foram criados explicitamente pelo comando mkdir –p testewar/modules e o terceiro diretório foi criado pelo maven e o nome deste diretório será o artifactId da aplicação, que neste caso é portal.
3. Criando o workspace
- /export/home/fsantos/projetos/testewar# mkdir –p workspaces/eclipse_33
- /export/home/fsantos/projetos/testewar# cd workspaces/eclipse_33
- /export/home/fsantos/projetos/testewar/workspaces/eclipse_33# pwd
/export/home/fsantos/projetos/testewar/workspaces/eclipse_33
(Copiar este path)
Executar o eclipse, no meu caso é o Eclipse 3.3 e indicar o path “/export/home/fsantos/projetos/testewar/workspaces/eclipse_33″ como o caminho para o workspace.
Quando o eclipse termina de carregar terá sido criado o diretório “.metadata”,
deixo o eclipse de lado por enquando e minimizo.
4. Criando os arquivos de configuração de projeto do Eclipse
-
#cd $USER_HOME/projetos/testewar/modules/portal
-
…/projetos/testewar/modules/portal# mvn -Dwtpversion=1.5 eclipse:eclipse
Ao final deste, uma estrutura de diretórios foi criada usando a arquétipo padrão do Maven. Os arquivos .classpath e .project estão prontos e com as dependências já relacionadas.
5. Configurando o projeto no Eclipse
Com o Eclipse rodando, preciso importar o projeto já criado, estes passos serão necessários:
- File -> Import…
- Import -> General -> Existing Projects into Workspace
- Botão Next
- Select root directory:
- Browse…
- Apontar para o diretório portal
- Botão Finish
O projeto será importado mas falta indicar o caminho do repositório do Maven para que o Eclipse possa compilar os fontes:
- Window -> Preferences…
- Na janela Preferences: buscar por Classpath variables
- Adicionar a variável M2_REPO com o valor $USER_HOME/.m2/repository
- Clicar Botão Ok
6. Adicionando Struts
Para adicionar struts no meu projeto preciso apenas editar o arquivo: $USER_HOME/projetos/testewar/modules/portal/pom.xml
<project xmlns=”http://maven.apache.org/POM/4.0.0″
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd”>
…
<dependencies>
…
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
…
</dependencies>
…
</project>
Agora as dependências com o Struts e com o jUnit já estão relacionadas e a partir de agora qualquer comando do Maven executado, o download das bibliotecas será realizado, exemplo:
- /export/home/fsantos/projetos/testewar/modules/portal# mvn compile
Como as dependências com as bibliotecas foram adicionadas depois da criação dos arquivos do projeto (Tópico 5), o que foi feito de proppósito para tornar claro como adicionar uma dependencia a um projeto já pronto. Será necessário executar:
- …/projetos/testewar/modules/portal# mvn eclipse:eclipse
7. Comandos do úteis (Goals)
| mvn clean | Limpa os diretórios de bibliotecas e de arquivos compilados |
| mvn compile | Compila projeto |
| mvn eclipse:eclipse | Atualiza lista de bibliotecas referenciadas pelo Eclipse |
| mvn install | Adiciona arquivo war no repositório local do Maven |
| mvn deploy | Adiciona arquivo war no servidor de artefatos do Maven |
| mvn package | Gera arquivo war |
| mvn verify | Verifica as dependências |
| mvn war:war | Gera arquivo WAR no diretório target |
| mvn war:inplace | Gera WAR ‘explodido’ no diretório ’src/main/webapp’, de modo que possa realizar o deploy deste usando configuração do Tomcat . Desvantagem: diretórios criados: ‘WEB-INF/classes’ e ‘WEB-INF/lib’ não são removidos quando é executado comando mvn clean |



November 23rd, 2008 at 12:43 am
Thank you for the easy to follow blog post on proxies.