Maven Compiler Plugin

Denne artikel er en del af en serie: • Maven Resources Plugin

• Maven Compiler Plugin (nuværende artikel) • Hurtig guide til Maven Install Plugin

• Maven Failsafe Plugin

• Hurtig guide til Maven Surefire Plugin

• Maven Deploy Plugin

• Maven Clean-pluginet

• Maven Verifier Plugin

• Maven Site Plugin

• Vejledning til Core Maven Plugins

1. Oversigt

Denne hurtige vejledning introducerer kompilator plugin, et af de centrale plugins i Maven build-værktøjet.

For en oversigt over de andre kerne-plugins henvises til denne artikel.

2. Plugin-mål

Det kompilator plugin bruges til at kompilere kildekoden til et Maven-projekt. Dette plugin har to mål, som allerede er bundet til specifikke faser af standardlivscyklussen:

  • udarbejde kompilere hovedkildefiler
  • testKompilér kompilere testkildefiler

Her er den kompilator plugin i POM:

 maven-compiler-plugin 3.7.0 ... 

Vi kan finde den nyeste version af dette plugin her.

3. Konfiguration

Som standard er kompilator plugin kompilerer kildekode, der er kompatibel med Java 5, og de genererede klasser fungerer også med Java 5 uanset JDK, der er i brug. Vi kan ændre disse indstillinger i konfiguration element:

 1.8 1.8  

For nemheds skyld kan vi indstille Java-versionen som egenskaber for POM:

 1.8 1.8 

Nogle gange ønsker vi at videregive argumenter til javac kompilator. Det er her, compilerArgs parameter er praktisk.

For eksempel kan vi specificere følgende konfiguration for compileren for at advare om ukontrollerede operationer:

   -Xlint: ikke markeret 

Når du sammensætter denne klasse:

offentlig klasse Data {List textList = new ArrayList (); public void addText (String text) {textList.add (text); } offentlig liste getTextList () {returner this.textList; }}

vi ser en ukontrolleret advarsel på konsollen:

[ADVARSEL] ... Data.java: [7,29] ukontrolleret konvertering påkrævet: java.util.List fundet: java.util.ArrayList

Som begge mål for kompilator plugin er automatisk bundet til faser i Maven-standardlivscyklussen, vi kan udføre disse mål med kommandoerne mvn kompilere og mvn test-kompilering.

4. Java 9-opdateringer

4.1. Konfiguration

Indtil Java 8 brugte vi versionsnummeret som 1.x hvor x repræsenterer Java's version, ligesom 1.8 til Java 8.

For Java 9 og nyere kan vi bare bruge versionsnummeret direkte:

 9 9 

På samme måde kan vi definere versionen ved hjælp af ejendomme som:

 9 9 

Maven tilføjede sin understøttelse af Java 9 i 3.5.0, så vi har brug for mindst den version. Vi har også brug for mindst 3.8.0 af maven-compiler-plugin:

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

4.2. Byg

Nu er det tid til at teste vores konfiguration.

Lad os først oprette en MavenCompilerPlugin klasse, hvor vi importerer en pakke fra et andet modul.

En enkel er javax.xml.XMLConstants.XML_NS_PREFIX:

public class MavenCompilerPlugin {public static void main (String [] args) {System.out.println ("XML namespace præfikset er:" + XML_NS_PREFIX); }}

Lad os derefter sammensætte det:

mvn -q ren kompilér exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

Når du bruger Java 9-standardindstillinger, får vi dog en fejl:

[FEJL] KOMPILATIONSFEJL: [FEJL] ... / MavenCompilerPlugin.java: [3,20] pakke javax.xml er ikke synlig (pakke javax.xml erklæres i modulet java.xml, men modulet com.baeldung.maven. java9 læser det ikke) [FEJL] ... / MavenCompilerPlugin.java: [3,1] statisk import kun fra klasser og grænseflader [FEJL] ... / MavenCompilerPlugin.java: [7,62] kan ikke finde symbol symbol: variabel XML_NS_PREFIX placering: klasse com.baeldung.maven.java9.MavenCompilerPlugin

Fejlen kommer fra det faktum, at denne pakke er i et separat modul, som vi endnu ikke har medtaget i vores build.

Den enkleste måde at løse dette på er ved at skabe et modul- info.java klasse og angiver, at vi har brug for java.xml modul:

modul com.baeldung.maven.java9 {kræver java.xml; }

Nu kan vi prøve igen:

mvn -q ren kompilér exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

Og vores output vil være:

Præfikset for XML-navneområdet er: xml

5. Konklusion

I denne artikel gik vi over kompilator plugin og beskrevet, hvordan man bruger det. Vi lærte også om Mavens support til Java 9.

Den komplette kildekode til denne vejledning kan findes på GitHub.

Næste » Hurtig guide til Maven Install Plugin « Forrige Maven Resources Plugin