Maven Compiler Plugin

Denne artikkelen er en del av en serie: • Maven Resources Plugin

• Maven Compiler Plugin (nåværende artikkel) • Hurtigguide til Maven Install Plugin

• Maven Failsafe Plugin

• Hurtigguide til Maven Surefire Plugin

• Maven Deploy Plugin

• Maven Clean Plugin

• Maven Verifier-plugin

• Maven Site Plugin

• Veiledning til Core Maven Plugins

1. Oversikt

Denne raske opplæringen introduserer kompilator plugin, en av kjernepluginene til Maven build-verktøyet.

For en oversikt over de andre kjerneutvidelsene, se denne artikkelen.

2. Plugin-mål

De kompilator plugin brukes til å kompilere kildekoden til et Maven-prosjekt. Dette pluginet har to mål, som allerede er bundet til bestemte faser av standard livssyklus:

  • kompilere kompilere hovedkildefiler
  • testKompilere kompilere testkildefiler

Her er kompilator plugin i POM:

 maven-compiler-plugin 3.7.0 ... 

Vi finner den nyeste versjonen av dette pluginet her.

3. Konfigurasjon

Som standard er kompilator plugin kompilerer kildekode som er kompatibel med Java 5, og de genererte klassene fungerer også med Java 5 uavhengig av JDK som er i bruk. Vi kan endre disse innstillingene i konfigurasjon element:

 1.8 1.8  

For enkelhets skyld kan vi angi Java-versjonen som egenskaper for POM:

 1.8 1.8 

Noen ganger ønsker vi å gi argumenter til javac kompilator. Dette er hvor kompilatorArg parameteren er nyttig.

For eksempel kan vi spesifisere følgende konfigurasjon for kompilatoren for å advare om ukontrollerte operasjoner:

   -Xlint: ukontrollert 

Når du sammenstiller denne klassen:

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

vi får se en ukontrollert advarsel på konsollen:

[ADVARSEL] ... Data.java: [7,29] ukontrollert konvertering nødvendig: java.util.List funnet: java.util.ArrayList

Som begge målene for kompilator plugin blir automatisk bundet til faser i Maves standard livssyklus, vi kan utføre disse målene med kommandoene mvn kompilere og mvn test-kompilere.

4. Java 9-oppdateringer

4.1. Konfigurasjon

Inntil Java 8 brukte vi versjonsnummeret som 1.x hvor x representerer Java-versjonen, som 1,8 for Java 8.

For Java 9 og nyere kan vi bare bruke versjonsnummeret direkte:

 9 9 

På samme måte kan vi definere versjonen ved hjelp av eiendommer som:

 9 9 

Maven la til sin støtte for Java 9 i 3.5.0, så vi trenger i det minste den versjonen. Vi trenger også minst 3.8.0 av maven-compiler-plugin:

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

4.2. Bygge

Nå er det på tide å teste konfigurasjonen vår.

La oss først lage en MavenCompilerPlugin klasse der vi importerer en pakke fra en annen modul.

En enkel er javax.xml.XMLConstants.XML_NS_PREFIX:

public class MavenCompilerPlugin {public static void main (String [] args) {System.out.println ("XML-navneområdeprefikset er:" + XML_NS_PREFIX); }}

La oss sammenstille det:

mvn -q clean compile exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

Når du bruker Java 9-standardinnstillinger, får vi en feil:

[FEIL] KOMPILASJONSFEIL: [FEIL] ... / MavenCompilerPlugin.java: [3,20] pakke javax.xml er ikke synlig (pakke javax.xml er erklært i modulen java.xml, men modulen com.baeldung.maven. java9 leser den ikke) [FEIL] ... / MavenCompilerPlugin.java: [3,1] statisk import bare fra klasser og grensesnitt [FEIL] ... / MavenCompilerPlugin.java: [7,62] finner ikke symbol symbol: variabel XML_NS_PREFIX plassering: klasse com.baeldung.maven.java9.MavenCompilerPlugin

Feilen kommer fra det faktum at denne pakken er i en egen modul som vi ikke har tatt med ennå i byggingen vår.

Den enkleste måten å løse dette på er å skape en modulinfo.java klasse og indikerer at vi trenger java.xml modul:

modul com.baeldung.maven.java9 {krever java.xml; }

Nå kan vi prøve igjen:

mvn -q clean compile exec: java -Dexec.mainClass = "com.baeldung.maven.java9.MavenCompilerPlugin"

Og vår produksjon vil være:

Prefikset for XML-navneområdet er: xml

5. Konklusjon

I denne artikkelen gikk vi over kompilator plugin og beskrevet hvordan du bruker den. Vi lærte også om Mavens støtte til Java 9.

Den komplette kildekoden for denne opplæringen finner du på GitHub.

Neste » Hurtigguide til Maven Install Plugin « Forrige Maven Resources Plugin

$config[zx-auto] not found$config[zx-overlay] not found