Gerenciando dependências com o Maven

No último post foi criado um projeto a partir do Archetype usando o seguinte comando:

mvn archetype:generate -DinteractiveMode=n -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-SNAPSHOT -DgroupId=com.wordpress.felipefirmo -DartifactId=tutorialMaven

Quando este comando for executado pela primeira vez, o Maven fará o download de alguns arquivos necessários para criar seu projeto, dentre eles o jar do JUnit (ver código abaixo). Nas demais vezes em que for executado estes arquivos estarão presentes no repositório local do Maven, não sendo baixados novamente.

Este comando criará dentro da pasta tutorialMaven o arquivo pom.xml e a pasta src. O arquivo pom.xml é o arquivo de configuração do Maven, nele estão configuradas dentre outras coisas as dependências do projeto. A pasta src contém todo o código fonte do projeto, tanto código Java quanto arquivos de configuração.

Para gerenciar as dependências de seu projeto é preciso alterar o arquivo pom.xml, mais especificamente criar ou alterar a tag dependency que fica dentro de dependencies:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

Para cada dependência uma tag dependency será necessária, informando o groupId, artifactId, version e scope da dependência. Creio que o jeito mais fácil de encontrar estas informações seja pelo site http://mvnrepository.com. A titulo de exemplo vamos utilizar o iBatis por ser um caso bem simples.

Pesquisando iBatis no mvnrepository, uma lista de resultados são exibidos. No caso estamos procurando o módulo sqlmap e sabendo que o iBatis é da apache, a dependência correta é: ibatis-sqlmap (foi um dos últimos resultados; essa é a desvantagem deste site, muitos resultados não relacionados são retornados). Clicando na versão desejada, neste caso a ultima versão estável é a 2.3.4.726, a tag dependency do iBatis será exibida, basta copiá-la dentro da tag dependencies.

<dependencies>
...
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
<scope>compile</scope>
</dependency>
</dependencies>

Depois de copiá-la e utilizar o comando abaixo para compilar, ela será adicionada às dependências do projeto.

mvn clean compile

O parâmetro clean limpará a pasta target e o parâmetro compile criará os arquivos .class na pasta target.

Para finalizar o escopo inicial, falta gerar o portal do projeto. Isso pode ser feito executando o comando abaixo na pasta tutorialMaven:

mvn site

Este comando criará uma pasta site contendo o portal recém gerado dentro da pasta target. A página /tutorialMaven/target/site/dependencies.html por exemplo mostra que o iBatis foi incluído como uma dependência do projeto.

Assim fechamos o escopo inicial proposto mas, como dito anteriormente, este é apenas um guia rápido para quem não conhece o Maven. Vale a pena se aprofundar pois tem muita coisa legal que dá para fazer com ele!