Guia simples de como atualizar uma aplicação Java 8 para o novo LTS(Java 11).
Esse guia foi testado em algumas libs e aplicações spring.
Contribuições são bem vindas, principalmente sobre relatos de problemas e correções no guia.
Antes de tudo, lembre-se de que é necessário possuir o JDK da versão que deseja, que no nosso caso seria oracleJDK/openJDK 11
.
Configure se necessário o java default da sua maquina, exemplo:
$JAVA_HOME:
$: export JAVA_HOME=PATH_JDK_11
Utilizando update alternatives:
# Java
$: sudo update-alternatives --config java
# Javac
$: sudo update-alternatives --config javac
Atualize a versão do seu java no pom.xml
, por exemplo:
...
<properties>
...
<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
...
</properties>
...
Em alguns casos pode ser necessário fazer um import explicito de algumas dependencias, como por exemplo a falta do javaassists:
Exception exemplo:
Caused by: java.lang.NullPointerException: null
at javassist.util.proxy.SecurityActions.setAccessib(SecurityActions.java:103) ~[javassist-3.22.0-GA.jar:na]
at javassist.util.proxy.DefineClassHelper.toClas(DefineClassHelper.java:151) ~[javassist-3.22.0-GA.jar:na]
Lib necessária:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.23.1-GA</version>
</dependency>
Algumas libs do Java EE foram removidas, segunda proposta JEP 320.
Então é necessário fazer imports explicitos, todas as libs podem ser encontradas no maven central
:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
Links: