10 comandos valiosos no Maven que você precisa conhecer
Autor: Jony Ferreira | Publicado: 2014-02-20T17:55:00-03:00



Ao estudar um pouco mais o Maven identifiquei alguns comandos valiosos que podem ser úteis para avaliação do status atual do projeto. Vale a pena executar cada um deles para ver o que acontece!


1)Exibe as atualizações existentes para as dependências do projeto.
mvn versions:display-dependency-updates


Resultado semelhante a: 
[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   commons-io:commons-io ..................................... 2.1 -&gt; 2.4
[INFO]   commons-logging:commons-logging ....................... 1.1.1 -&gt; 1.1.3


2) Exibe as atualizações existentes para os plugins configurados no projeto.
mvn versions:display-plugin-updates
...
[INFO] All plugins with a version specified are using the latest versions.
[INFO]
[WARNING] The following plugins do not have their version specified:
[WARNING]   maven-clean-plugin .......................... (from super-pom) 2.5
[WARNING]   maven-compiler-plugin ....................... (from super-pom) 3.1
[WARNING]   maven-deploy-plugin ......................... (from super-pom) 2.7
[WARNING]   maven-install-plugin ........................ (from super-pom) 2.4
[WARNING]   maven-jar-plugin ............................ (from super-pom) 2.4
[WARNING]   maven-resources-plugin ...................... (from super-pom) 2.6
[WARNING]   maven-site-plugin ........................... (from super-pom) 3.3
[WARNING]   maven-surefire-plugin ...................... (from super-pom) 2.15
[INFO]
[WARNING] Project does not define minimum Maven version, default is: 2.0
[INFO] Plugins require minimum Maven version of: 2.2.1
[INFO] Note: the super-pom from Maven 3.0.4 defines some of the plugin
[INFO]       versions and may be influencing the plugins required minimum Maven
[INFO]       version.
[INFO]
[ERROR] Project does not define required minimum version of Maven.
[ERROR] Update the pom.xml to contain
[ERROR]     
[ERROR]       2.2.1
[ERROR]     
[INFO]
[INFO] Require Maven 2.0.2 to use the following plugin updates:
[INFO]   maven-site-plugin ........................................ 2.0-beta-7
[INFO]
[INFO] Require Maven 2.0.6 to use the following plugin updates:
[INFO]   maven-clean-plugin .............................................. 2.5
[INFO]   maven-deploy-plugin ............................................. 2.7
[INFO]   maven-install-plugin ............................................ 2.4
[INFO]   maven-jar-plugin ................................................ 2.4
[INFO]   maven-resources-plugin .......................................... 2.6
[INFO]   maven-site-plugin ............................................. 2.0.1
[INFO]   maven-surefire-plugin ......................................... 2.4.3
[INFO]
[INFO] Require Maven 2.0.9 to use the following plugin updates:
[INFO]   maven-compiler-plugin ........................................... 3.1
[INFO]   maven-surefire-plugin .......................................... 2.15
[INFO]
[INFO] Require Maven 2.1.0 to use the following plugin updates:
[INFO]   maven-site-plugin ............................................. 2.1.1
[INFO]
[INFO] Require Maven 2.2.0 to use the following plugin updates:
[INFO]   maven-site-plugin ............................................... 3.0
[INFO]
[INFO] Require Maven 2.2.1 to use the following plugin updates:
[INFO]   maven-site-plugin ............................................... 3.3


3) Exibe a árvore detalhada de dependencias
mvn dependency:tree -Ddetail
...
[INFO] br.com.maven3.tutorial:hot.commands:jar:0.0.1-SNAPSHOT
[INFO] +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] \- commons-io:commons-io:jar:2.1:compile


4)Exibe a lista de dependencias do projeto
mvn dependency:list

...
[INFO]    commons-io:commons-io:jar:2.1:compile
[INFO]    commons-logging:commons-logging:jar:1.1.1:compile


5) Exibe a versão completa do pom.
mvn help:effective-pom


6) Exibe a configuração do maven
mvn help:effective-settings


7)Exibe as variáveis de ambiente e de sistema
mvn help:system


8)Exibe o classpath das dependencias do projeto
mvn dependency:build-classpath


9)Exibe quais dependências são desnecessárias
mvn dependency:analyze
...
[WARNING] Unused declared dependencies found:
[WARNING]    commons-logging:commons-logging:jar:1.1.1:compile
[WARNING]    commons-io:commons-io:jar:2.1:compile


10)Exibe as dependências que estão duplicadas no projeto.
dependency:analyze-duplicate

...
[INFO] List of duplicate dependencies defined in  in your pom.xml
:
o commons-io:commons-io:jar



Considerações Finais



Embora tais comandos possam informar que plugins ou dependências estejam desatualizados vale sempre a pena pensar duas vezes antes de aplicar atualizações que possam gerar efeitos colaterais.&nbsp;







Atualizações devem ser seguidas de muitos testes. Testes devem abranger todas as áreas envolvidas do projeto. O tempo necessário para aplicar tais atualizações e/ou possíveis correções devem ser contemplados.