<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Misc - FlavioCrispim &#187; Ricardo Silva</title>
	<atom:link href="http://flaviocrispim.com/post/category/authors/ricardo-silva/feed" rel="self" type="application/rss+xml" />
	<link>http://flaviocrispim.com</link>
	<description>Fresh Air</description>
	<lastBuildDate>Tue, 29 Jan 2008 02:43:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Template para cria&#231;&#227;o de projeto com o Maven2</title>
		<link>http://flaviocrispim.com/post/11</link>
		<comments>http://flaviocrispim.com/post/11#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:04:05 +0000</pubDate>
		<dc:creator>flaviocrispim</dc:creator>
				<category><![CDATA[Authors]]></category>
		<category><![CDATA[Flavio Crispim]]></category>
		<category><![CDATA[Ricardo Silva]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://flaviocrispim.com/?p=11</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>As características do meu projeto são: Projeto Web, Struts, jUnit.</p>
<p>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.</p>
<p>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.</p>
<p>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 <strong><font color="#868686">$MAVEN_HOME/bin</font></strong> esteja no PATH da máquina.</p>
<h5>1. Proxy HTTP (Opcional)</h5>
<p>Editar o arquivo $MAVEN_HOME/conf/settings.xml</p>
<blockquote><p>&lt;settings&gt;<br />
    &#8230;<br />
    &lt;proxies&gt;<br />
        &lt;proxy&gt;<br />
            &lt;id&gt;optional&lt;/id&gt;<br />
            &lt;active&gt;true&lt;/active&gt;<br />
            &lt;protocol&gt;http&lt;/protocol&gt;<br />
            &lt;username&gt;&lt;/username&gt;<br />
            &lt;password&gt;&lt;/password&gt;<br />
            &lt;host&gt;proxy.mycomp.com&lt;/host&gt;<br />
            &lt;port&gt;8080&lt;/port&gt;<br />
            &lt;nonProxyHosts&gt;mycomp.com, localhost&lt;/nonProxyHosts&gt;<br />
        &lt;/proxy&gt;<br />
    &lt;/proxies&gt;<br />
    &#8230;<br />
&lt;/settings&gt;</p></blockquote>
<h5>2. Criando o template do projeto</h5>
<p>Neste passo vou criar o diretório que servirá como raiz do meu projeto, seguindo uma estrutura definida qualquer:</p>
<ul>
<li>#cd $USER_HOME/projetos</li>
<li>/export/home/fsantos/projetos# mkdir –p testewar/modules</li>
<li>/export/home/fsantos/projetos# cd testewar/modules</li>
<li>&#8230;/testewar/modules# mvn archetype:create -DgroupId=com.mycompany<br />
-DartifactId=portal -DarchetypeArtifactId=maven-archetype-webapp</li>
</ul>
<p>Em promeiro lugar foram criados três diretórios, dois deles foram criados explicitamente pelo comando <strong><font color="#868686">mkdir –p testewar/modules</font></strong> e o terceiro diretório foi criado pelo maven e o nome deste diretório será o artifactId da aplicação, que neste caso é <strong><font color="#868686">portal</font></strong>.</p>
<h5>3. Criando o workspace</h5>
<ul>
<li>/export/home/fsantos/projetos/testewar# mkdir –p workspaces/eclipse_33</li>
<li>/export/home/fsantos/projetos/testewar# cd workspaces/eclipse_33</li>
<li>/export/home/fsantos/projetos/testewar/workspaces/eclipse_33# pwd<br />
/export/home/fsantos/projetos/testewar/workspaces/eclipse_33<br />
(Copiar este path)</li>
</ul>
<p>Executar o eclipse, no meu caso é o Eclipse 3.3 e indicar o path &#8220;/export/home/fsantos/projetos/testewar/workspaces/eclipse_33&#8243; como o caminho para o workspace.</p>
<p>Quando o eclipse termina de carregar terá sido criado o diretório &#8220;.metadata&#8221;,<br />
deixo o eclipse de lado por enquando e minimizo.</p>
<h5>4. Criando os arquivos de configuração de projeto do Eclipse</h5>
<ul>
<li>
<p align="left">#cd $USER_HOME/projetos/testewar/modules/portal</p>
</li>
<li>
<p align="left">&#8230;/projetos/testewar/modules/portal# mvn -Dwtpversion=1.5 eclipse:eclipse</p>
</li>
</ul>
<p>Ao final deste, uma estrutura de diretórios foi criada usando a arquétipo padrão do Maven. Os arquivos <strong><font color="#868686">.classpath</font></strong> e <strong><font color="#868686">.project</font></strong> estão prontos e com as dependências já relacionadas.</p>
<h5>5. Configurando o projeto no Eclipse</h5>
<p>Com o Eclipse rodando, preciso importar o projeto já criado, estes passos serão necessários:</p>
<ol>
<li>File -&gt; Import&#8230;</li>
<li>Import -&gt; General -&gt; Existing Projects into Workspace
<ol>
<li>Botão Next</li>
</ol>
</li>
<li>Select root directory:
<ol>
<li>Browse&#8230;</li>
<li>Apontar para o diretório portal</li>
</ol>
</li>
<li>Botão Finish</li>
</ol>
<p>O projeto será importado mas falta indicar o caminho do repositório do Maven para que o Eclipse possa compilar os fontes:</p>
<ol>
<li>Window -&gt; Preferences&#8230;</li>
<li>Na janela Preferences: buscar por Classpath variables</li>
<li>Adicionar a variável M2_REPO com o valor $USER_HOME/.m2/repository</li>
<li>Clicar Botão Ok</li>
</ol>
<h5>6. Adicionando Struts</h5>
<p>Para adicionar struts no meu projeto preciso apenas editar o arquivo: <strong><font color="#868686">$USER_HOME/projetos/testewar/modules/portal/pom.xml</font></strong></p>
<blockquote><p>&lt;project xmlns=&#8221;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0&#8243;</a><br />
xmlns:xsi=&#8221;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance&#8221;</a><br />
xsi:schemaLocation=&#8221;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0</a><br />
<a href="http://maven.apache.org/maven-v4_0_0.xsd">http://maven.apache.org/maven-v4_0_0.xsd&#8221;</a>&gt;<br />
    &#8230;<br />
    &lt;dependencies&gt;<br />
        &#8230;<br />
        &lt;dependency&gt;<br />
            &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;<br />
            &lt;artifactId&gt;struts-core&lt;/artifactId&gt;<br />
            &lt;version&gt;1.3.8&lt;/version&gt;<br />
        &lt;/dependency&gt;<br />
        &lt;dependency&gt;<br />
            &lt;groupId&gt;junit&lt;/groupId&gt;<br />
            &lt;artifactId&gt;junit&lt;/artifactId&gt;<br />
            &lt;version&gt;3.8.1&lt;/version&gt;<br />
            &lt;scope&gt;test&lt;/scope&gt;<br />
        &lt;/dependency&gt;<br />
        &#8230;<br />
    &lt;/dependencies&gt;<br />
    &#8230;<br />
&lt;/project&gt;</p></blockquote>
<p>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:</p>
<ul>
<li>/export/home/fsantos/projetos/testewar/modules/portal# mvn compile</li>
</ul>
<p>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:</p>
<ul>
<li>&#8230;/projetos/testewar/modules/portal# mvn eclipse:eclipse</li>
</ul>
<h5>7. Comandos do úteis (Goals)</h5>
<table border="1" width="461" cellPadding="2" cellSpacing="0">
<tr>
<td width="141" vAlign="top">mvn clean</td>
<td width="318" vAlign="top">Limpa os diretórios de bibliotecas e de arquivos compilados</td>
</tr>
<tr>
<td width="144" vAlign="top">mvn compile</td>
<td width="316" vAlign="top">Compila projeto</td>
</tr>
<tr>
<td width="146" vAlign="top">mvn eclipse:eclipse</td>
<td width="315" vAlign="top">Atualiza lista de bibliotecas referenciadas pelo Eclipse</td>
</tr>
<tr>
<td width="147" vAlign="top">mvn install</td>
<td width="314" vAlign="top">Adiciona arquivo war no repositório local do Maven</td>
</tr>
<tr>
<td width="147" vAlign="top">mvn deploy</td>
<td width="314" vAlign="top">Adiciona arquivo war no servidor de artefatos do Maven</td>
</tr>
<tr>
<td width="148" vAlign="top">mvn package</td>
<td width="313" vAlign="top">Gera arquivo war</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn verify</td>
<td width="312" vAlign="top">Verifica as dependências</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn war:war</td>
<td width="312" vAlign="top">Gera arquivo WAR no diretório target</td>
</tr>
<tr>
<td width="149" vAlign="top">mvn war:inplace</td>
<td width="312" vAlign="top">Gera WAR &#8216;explodido&#8217; no diretório &#8217;src/main/webapp&#8217;, de modo que possa realizar o deploy deste usando configuração do Tomcat<br />
.<br />
Desvantagem: diretórios criados: &#8216;WEB-INF/classes&#8217; e &#8216;WEB-INF/lib&#8217; não são removidos quando é executado comando <em>mvn clean</em></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://flaviocrispim.com/post/11/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
