Maven 3 avisos sobre build.plugins.plugin.version

Desde que atualizei para o Maven 3, recebo as seguintes mensagens de aviso em cada compilation:

Como posso me livrar desses avisos?

[INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for proj:id:jar:3.1 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 195, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 204, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 227, column 15 [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 215, column 15 [WARNING] 'reporting.plugins.plugin.version' for org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 271, column 15 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 

Adicione um elemento após o no seu arquivo pom.xml . Encontre o seguinte texto:

  maven-compiler-plugin 

Adicione a tag de versão a ela:

  maven-compiler-plugin 2.3.2 

O aviso deve ser resolvido.

Em relação a este:

‘build.plugins.plugin.version’ para org.apache.maven.plugins: maven-compiler-plugin está faltando

Muitas pessoas mencionaram por que o problema está acontecendo, mas não sugerem uma correção. Tudo o que eu precisava fazer era entrar no meu arquivo POM para o meu projeto e adicionar a tag como mostrado acima.

Para descobrir o número da versão, uma maneira é procurar na saída do Maven depois de terminar a execução. Onde você está faltando números de versão, o Maven irá exibir sua versão padrão:

 [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ entities --- 

Tome esse número de versão (como no 2.3.2 acima) e adicione-o ao seu POM, como mostrado.

Corra como:

   $ mvn help: descreve -DartifactId = maven-war-plugin -DgroupId = org.apache.maven.plugins

para plug-ins que não possuem versão. Você obtém saída:

 Nome: Maven WAR Plugin
 Descrição: Cria um arquivo WAR (Web Application Archive) do projeto
   saída e suas dependencies.
 ID do grupo: org.apache.maven.plugins
 ID de Artefato: maven-war-plugin
 Versão: 2.2
 Prefixo do Objetivo: guerra

Use a versão mostrada na saída.

UPDATE Se você quiser selecionar a lista de versões, use http://search.maven.org/ ou http://mvnrepository.com/ Note que seu IDE Java favorito deve ter o diálogo de busca de pacotes do Maven . Basta verificar docs.

SUPER UPDATE Eu também uso:

 $ mvn dependency:tree $ mvn dependency:list $ mvn dependency:resolve $ mvn dependency:resolve-plugins # <-- THIS 

Recentemente, descobri como obter a versão mais recente do plug-in (ou biblioteca), portanto, não é mais necessário ir ao google ou visitar o Maven Central :

 $ mvn versions:display-dependency-updates $ mvn versions:display-plugin-updates # <-- THIS 

Maven 3 é mais restritivo com a estrutura POM. Você tem que definir versões de Plugins, por exemplo.

Com o maven 3.1, esses avisos podem quebrar você. Há mais alterações entre maven2 e maven3: https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes

Estou usando um pom pai para meus projetos e queria especificar as versões em um só lugar, então usei propriedades para especificar a versão:

pai pom:

  ....  2.3.2  ....  

projeto pom:

  ....  helloworld   org.apache.maven.plugins maven-compiler-plugin ${maven-compiler-plugin-version}  1.6 1.6      

Veja também: https://www.allthingsdigital.nl/2011/04/10/maven-3-and-the-versions-dilemma/

obtenha as informações mais recentes sobre a versão de:

https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin

clique na versão mais recente (ou na que você gostaria de usar) e você verá as informações de dependência:

   org.apache.maven.plugins maven-compiler-plugin 3.6.1  

talvez você queira usar a tag de versão e o comentário para sua tag de plug-in.

   maven-compiler-plugin 3.6.1      

Se você gosta, você pode modificar o seu pom para ter as informações da versão na tag de propriedades, conforme descrito em outra resposta.

É ótima resposta aqui. E eu quero adicionar ‘Por que adicionar um elemento no Maven3’.
Em notas de compatibilidade do Maven 3.x

Resolução de Metaversão Plugin
Internamente, o Maven 2.x usou os marcadores de versão especial RELEASE e LATEST para suportar a resolução automática da versão do plugin. Essas metaversões também foram reconhecidas no elemento para uma declaração. Em prol de compilações reproduzíveis, o Maven 3.x não suporta mais o uso dessas metaversões no POM. Como resultado, os usuários precisarão replace ocorrências desses metaversions por uma versão concreta.

E eu também acho no maven-compilador-plugin – uso

Nota: O Maven 3.0 emitirá avisos se você não especificar a versão de um plugin.

Pesquise por “maven-jar-plugin” em pom.xml e adicione a versão version maven