Maven 2.0.8 + Archiva 1.0.1 + Tomcat 6.0.16

Pessoal hoje vamos instalar e configurar o Apache Maven 2 com o Apache Archiva. Maven é um poderosa ferramenta para gerencia do ciclo de vida de uma aplicação a partir da criação do projeto até mesmo o momento de fazer um release. Archiva é um front-end gráfico web para repositório do maven, assim você configura o Maven para pegar as bibliotecas no repositório local(Archiva) e se não existir lá o Archiva vai baixar nos repositórios remotos as dependências necessárias. Vamos ver como instalar e configurar o Maven em conjunto com Archiva.

Requerimentos

Para o exemplo usarei o JDK 6.0, mas funciona com JDK 5.0 também. Estou usando windows XP. Maven 2.0.8 e Archiva 1.0.1 e Apache Tomcat 6.0.16.

Maven 2



No site do Maven 2 você deve baixar o versão 2.0.8 e instalar extrair no C:\ após isso você deve criar uma variável de ambiente chamada: M2_HOME essa deve apontar para a instalação do Maven 2 que você acabou de instalar. A pós isso adicione na variável de ambiente PATH a seguinte instrução: ;%M2_HOME\bin%.

Testando a instalação do Maven

Agora abra o command e digite o seguinte: mvn -version .Se tudo correu certo você verá algo do tipo:


Archiva

Você de baixar o Archiva 1.0.1 Standalone e War. A pós baixar e extrair os dois no C:\.

Verificando o Archiva

Entre na pasta C:\apache-archiva-1.0.1\bin\windows-x86-32 e rode o bat: run.bat se tudo estiver ok, você irá subir o Jetty e a app do Archiva. Para conferir abre o url: http://localhost:8080/archiva/ no borwser se aparecer uma tela pedindo dados do Administrador está tudo ok.

Instalando o Archiva no Tomcat 6

Usar Archiva no Jetty pode ser legal apenas para conhecer o Archiva, para utiliza-lo comercialmente ou para testes mais profundos é melhor fazer sua instalação no Apache Tomcat 6.x.x. A pós biaxar o Tomcat 6.x.x e extrair no C:\ você deve renomear o .war do Archiva de apache-archiva-1.0.1.war para archiva.war.

você deve criar o arquivo context.xml que será usado pelo Archiva para DataSource JNDI no Apache Tomcat 6.0.X. Coloque o seguinte conteúdo no arquivo:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/archiva" docBase="${catalina.home}/webapps/archiva.war">
<Resource
auth="Container"
name="jdbc/users"
type="javax.sql.DataSource"
username="sa"
password=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:C:\\apache-archiva-1.0.1\\data\\users\\database;create=true"
/>
<Resource
auth="Container"
name="jdbc/archiva"
type="javax.sql.DataSource"
username="sa"
password=""
maxIdle="20"
maxActive="20"
maxWait="5000"
validationQuery=""
driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
url="jdbc:derby:C:\\apache-archiva-1.0.1\\data\\users\\database;create=true"
/>
<Resource
auth="Container"
name="mail/Session"
type="javax.mail.Session"
mail.smtp.host="localhost"
/>
</Context>

Lembrando que estamos apontando o Banco de dados Derby para o mesmo banco de dados que o Jetty criou quando você rodou a aplicação Standalone.

Crie um arquivo chamado: log4j.xml e coloque o seguinte conteudo:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="rolling" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="../logs/archiva.log" />
<param name="append" value="true" />
<param name="datePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>

<appender name="auditlog" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="../logs/audit.log" />
<param name="append" value="true" />
<param name="datePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %m%n"/>
</layout>
</appender>

<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>

<!-- Help identify bugs during testing -->
<logger name="org.apache.maven">
<level value="info"/>
</logger>

<logger name="org.apache.maven.archiva">
<level value="info" />
</logger>

<logger name="org.apache.maven.archiva.repository.scanner">
<level value="info" />
</logger>

<logger name="org.apache.archiva.AuditLog">
<level value="info" />
<appender-ref ref="auditlog" />
</logger>

<logger name="org.codehaus.plexus.security">
<level value="info"/>
</logger>

<!-- squelch noisy objects (for now) -->
<logger name="org.apache.commons">
<level value="warn"/>
</logger>

<logger name="net.sf.ehcache">
<level value="warn"/>
</logger>

<logger name="org.codehaus.plexus.mailsender.MailSender">
<level value="info"/>
</logger>

<logger name="org.codehaus.plexus.velocity">
<level value="error"/>
</logger>

<logger name="org.quartz">
<level value="info"/>
</logger>

<logger name="org.apache.jasper">
<level value="info"/>
</logger>

<logger name="com.opensymphony.xwork">
<level value="info"/>
</logger>

<logger name="com.opensymphony.webwork">
<level value="info"/>
</logger>

<logger name="org.codehaus.plexus.PlexusContainer">
<level value="info"/>
</logger>

<logger name="JPOX">
<level value="warn"/>
</logger>

<logger name="JPOX.MetaData">
<level value="error"/>
</logger>

<logger name="JPOX.RDBMS.SQL">
<level value="error"/>
</logger>

<logger name="SQL">
<level value="error"/>
</logger>

<logger name="freemarker">
<level value="warn"/>
</logger>

<logger name="org.codehaus.plexus.component.manager.ClassicSingletonComponentManager">
<level value="error"/>
</logger>

<root>
<priority value ="info" />
<appender-ref ref="console" />
<appender-ref ref="rolling" />
</root>

</log4j:configuration>

Pronto. Agora abra o archiva.war e coloque o arquivo context.xml que você criou na pasta META-INF, você pode fazer isso com o winrar arrastando o arquivo com o mouse.

Copie o arquivo log4j.xml para dentro do war archiva.war no diretório WEB-INF/classes você pode fazer isso com o winrar arrastando o arquivo com o mouse.

Agora copie o arquivo archiva.war para a pasta de instalação do tomcat no C:\apache-tomcat-6.0.16\webapps. Pronto agora podemo subir o tomcat para isso. vá na pasta: C:\apache-tomcat-6.0.16\bin e rode o bat startup.bat.

Agora vá no browser e digite: http://localhost:8080/archiva/

Cadastre o seu usuário que será o administrador do Archiva.

Configurando o Maven para usar o Archiva

No windows XP: C:\Documents and Settings\SEU_USER\.m2 no windows Vista: C:\Users\SEU_USER\.m2 e coloque o seguinte conteudo no arquivo settings.xml:

<settings 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/xsd/settings-1.0.0.xsd"
>
<mirrors>
<mirror>
<id>archiva.default</id>
<url>http://localhost:8080/archiva/repository/internal/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>

Testando com o Maven 2.0.8

Crie uma pasta chamada: teste no C:\ e lá dentro crie o arquivo: pom.xml e coloque o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.blogspot.diego-pacheco.maven-archiva</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Tutorial</name>
<url>http://diego-pacheco.blogspot.com</url>
</project>

Se tudo estiver 100% você verá algo do tipo isso.

Resumo

Configuramos e instalamos:
- Apache Tomcat 6.x.x
- Apache Maven 2.0.8
- Apache Archiva 1.0.1

Configuramos o Maven 2 para resolver suas dependencias através do Archiva sempre. Se existe uma dependencia no repositório do Archiva ela é rolvidada de lá se não ele é obtida de um repositório remoto. Se você quizer configurar mais repositórios remotos vejá isso.

:)

Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java