Diferentes versões do Maven fazem com que as bibliotecas extras sejam incluídas no arquivo de guerra
Pergunta
Estou tentando construir um arquivo de guerra para ser implantado em um servidor Tomcat usando o Maven, mas notei algum comportamento estranho ao criar meu arquivo de guerra:
Ao executar o comando da pasta do projeto: mvn clean compile package -DskipTests
- O MAVEN versão 3.0 produz um arquivo de guerra 12.079MB (49 arquivos JAR na pasta Web-Inf/Lib)
- Maven versão 3.0 beta1 produz um arquivo de guerra 8,7 MB (31 arquivos JAR na pasta web-inf/lib)
- O MAVEN versão 2.11 produz um arquivo de guerra 2,3 MB (3 arquivos JAR na pasta Web-Inf/Lib)
O que pode estar fazendo com que os arquivos de jar extras sejam incluídos no projeto? Presumivelmente, eles não são necessários, pois a construção do projeto usando a versão 2.11 funcionou bem no passado.
Solução
Eu tinha algo semelhante aconteceu comigo. Aqui está o que aconteceu.
No Maven 2.x, as versões do plug -in são definidas pelo próprio Maven. No Maven 3.x, ele usará o "mais recente" e lhe dará um aviso. No meu caso, o uso de uma versão posterior do plug -in do compilador causou algumas diferenças e uma versão posterior do plug -in de dependência causa outras diferenças.
Depois de definir explicitamente todas as versões de todos os plugins no meu pom.xml (uma prática recomendada de qualquer maneira), as inconsistências desapareceram.