Maven - alandrade21/docsCompartilhados GitHub Wiki
Por algum motivo, a distribuição de maven que vem nos sistemas baseados em Ubuntu é um repack da versão original.
Esse repack pode apresentar alguns problemas em setups fora do usual, por exemplo, quando necessário utilizar JDK 7.
Essa página mostra como instalar o maven padrão e como manter várias versões de maven na máquina.
Rode o comando mvn -version
.
O resultado abaixo mostra a versão disponível via ubuntu:
Apache Maven 3.6.3
Maven home: /usr/share/maven
...
Abaixo a saída da versão apache:
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /home/andre/opt/apache-maven-3.8.8
...
Em alguns casos, ao rodar o mvn com java 7, pode ocorrer seguinte erro:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/codehaus/plexus/classworlds/launcher/Launcher : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Esse erro pode indicar que você está utilizando um repack do mvn gerado pelo ubunto, ou uma versão mais nova do mvn que não suporta mais java 7.
Em ambos os casos será necessário instalar uma versão do apache mvn compatível com java 7.
A versão oficial do maven pode ser baixada do endereço https://maven.apache.org/download.cgi.
É importante notar o avido da própria apache de que a versão 3,9+ requer JDK 8+ para funcionar.
Nesta página vamos instalar as versões 3.9.5 e 3.8.8.
-
Baixe o arquivo compactado dos binários de cada versão.
-
Descompacte cada pacote e mova as pastas descompactadas para o local onde deseja que essas versões fiquem. Por exemplo
~/opt/apache-maven-3.8.8
e~/opt/apache-maven-3.9.5
. -
Configure o sistema de opções do linux para ambas as versões com os comandos:
sudo update-alternatives --install /usr/bin/mvn mvn /home/andre/opt/apache-maven-3.8.8/bin/mvn 400 sudo update-alternatives --install /usr/bin/mvn mvn /home/andre/opt/apache-maven-3.9.5/bin/mvn 500
Troque o caminho para os binários de acordo com seu setup. Troque o valor do número de prioridade (o último parâmetro) de acordo com sua preferência.
Você pode verificar essa configuração com o comando:
update-alternatives --display mvn
E finalmente pode trocar a versão do maven em uso com o comando:
sudo update-alternatives --config mvn