Impostazione della versione Java in Maven

1. Panoramica

In questo rapido tutorial, mostreremo come impostare la versione Java in Maven .

Prima di andare avanti, possiamo controllare la versione JDK predefinita di Maven . L'esecuzione del comando mvn -v mostrerà la versione Java in cui viene eseguito Maven.

2. Utilizzare il plug-in del compilatore

Possiamo specificare la versione Java desiderata nel plugin del compilatore.

2.1. Plugin del compilatore

La prima opzione è impostare la versione nelle proprietà del plugin del compilatore:

 1.8 1.8 

Il compilatore Maven accetta questo comando con le versioni - target e - source . Se vogliamo usare le funzionalità del linguaggio Java 8, il - source dovrebbe essere impostato su 1.8 .

Inoltre, affinché le classi compilate siano compatibili con JVM 1.8, il valore target - dovrebbe essere 1.8 .

Il valore predefinito per entrambi è la versione 1.6.

In alternativa, possiamo configurare direttamente il plug-in del compilatore:

  maven-compiler-plugin  1.8 1.8   

Il plug-in maven-compiler ha anche proprietà di configurazione aggiuntive che ci consentono di avere un maggiore controllo sul processo di compilazione oltre alle versioni -source e -target .

2.2 Java 9 e oltre

Inoltre, a partire dalla versione JDK 9, possiamo utilizzare una nuova opzione della riga di comando -release . Questo nuovo argomento configurerà automaticamente il compilatore per produrre file di classe che si collegheranno all'implementazione della versione della piattaforma data.

Per impostazione predefinita, le opzioni -source e -target non garantiscono una compilazione incrociata .

Ciò significa che non possiamo eseguire la nostra applicazione su versioni precedenti della piattaforma. Inoltre, per compilare ed eseguire i programmi per le versioni precedenti di Java, è necessario specificare anche l' opzione -bootclasspath .

Per eseguire correttamente la compilazione incrociata, la nuova opzione -release sostituisce tre flag: -source, -target e -bootclasspath .

Dopo aver trasformato i nostri esempi, per le proprietà del plugin possiamo dichiarare:

 7 

E per il maven-compiler-plugin a partire dalla versione 3.6 possiamo scrivere:

 org.apache.maven.plugins maven-compiler-plugin 3.8.0  7  

Come notiamo, possiamo aggiungere la versione Java in un nuovoattributo . In questo esempio, compiliamo la nostra applicazione per Java 7.

Inoltre, non abbiamo bisogno di un JDK 7 installato nella nostra macchina. Java 9 contiene già tutte le informazioni per collegare le nuove funzionalità del linguaggio con JDK 7.

3. Specifiche Spring Boot

Le applicazioni Spring Boot specificano la versione JDK all'interno dei tag delle proprietà nel file pom.xml .

Innanzitutto, dobbiamo aggiungere spring-boot-starter-parent come genitore al nostro progetto:

 org.springframework.boot spring-boot-starter-parent 

Questo POM padre ci consente di configurare plug-in predefiniti e più proprietà inclusa la versione Java: per impostazione predefinita, la versione Java è 1.8 .

Tuttavia, possiamo sovrascrivere la versione predefinita del genitore specificando la proprietà java.version :

 1.9 

Impostando la proprietà java.version si dichiara che la versione Java di origine e quella di destinazione sono entrambe uguali a 1.9 .

Soprattutto, dovremmo tenere presente che questa proprietà è una specifica di Spring Boot. Inoltre, a partire da Spring Boot 2.0, Java 8 è la versione minima.

Ciò significa che non possiamo utilizzare o configurare Spring Boot per le versioni precedenti di JDK.

4. Conclusione

Questo breve tutorial mostra i possibili modi per impostare la versione Java nel nostro progetto Maven.

In sintesi:

  • Utilizzando è possibile solo con l'applicazione Spring Boot
  • Per casi semplici, le proprietà maven.compiler.source e maven.compiler.target dovrebbero essere le migliori
  • Infine, per avere un maggiore controllo sul processo di compilazione, usa le impostazioni di configurazione del plugin del compilatore di maven