Pemalam Penyusun Maven

Artikel ini adalah sebahagian daripada siri: • Maven Resources Plugin

• Maven Compiler Plugin (artikel semasa) • Panduan Pantas untuk Maven Install Plugin

• Plugin Maven Failsafe

• Panduan Pantas untuk Maven Surefire Plugin

• Plugin Maven Deploy

• Plugin Bersih Maven

• Plugin Pengesah Maven

• Plugin Laman Maven

• Panduan untuk Plugin Core Maven

1. Gambaran keseluruhan

Tutorial ringkas ini memperkenalkan pemalam penyusun , salah satu pemalam teras alat binaan Maven.

Untuk gambaran keseluruhan plugin teras lain, rujuk artikel ini.

2. Matlamat Plugin

The pengkompil plugin digunakan untuk menyusun kod sumber projek Maven . Plugin ini mempunyai dua tujuan, yang sudah terikat pada fasa tertentu dari kitaran hayat lalai:

  • menyusun - menyusun fail sumber utama
  • testCompile - menyusun fail sumber ujian

Berikut adalah pemalam penyusun dalam POM:

 maven-compiler-plugin 3.7.0  ...  

Kami boleh mendapatkan versi terkini pemalam ini di sini.

3. Konfigurasi

Secara lalai, plugin penyusun menyusun kod sumber yang serasi dengan Java 5, dan kelas yang dihasilkan juga berfungsi dengan Java 5 tanpa mengira JDK yang digunakan. Kita boleh mengubah tetapan ini dalam elemen konfigurasi :

 1.8 1.8  

Untuk kemudahan, kami dapat menetapkan versi Java sebagai sifat POM:

 1.8 1.8 

Kadang-kadang kita mahu menyampaikan argumen ke penyusun javac . Di sinilah parameter compilerArgs berguna.

Sebagai contoh, kita dapat menentukan konfigurasi berikut untuk penyusun untuk memberi amaran mengenai operasi yang tidak diperiksa:

   -Xlint:unchecked  

Semasa menyusun kelas ini:

public class Data { List textList = new ArrayList(); public void addText(String text) { textList.add(text); } public List getTextList() { return this.textList; } }

kita akan melihat amaran yang tidak dicentang di konsol:

[WARNING] ... Data.java:[7,29] unchecked conversion required: java.util.List found: java.util.ArrayList

Oleh kerana kedua-dua tujuan plugin penyusun secara automatik terikat pada fasa dalam kitaran hidup lalai Maven, kita dapat melaksanakan tujuan ini dengan perintah kompilasi mvn dan kompilasi ujian mvn .

4. Kemas kini Java 9

4.1. Konfigurasi

Sampai Java 8, kami menggunakan nomor versi sebagai 1. x di mana x mewakili versi Java, seperti 1.8 untuk Java 8.

Untuk Java 9 dan ke atas, kita hanya boleh menggunakan nombor versi secara langsung:

 9 9 

Begitu juga, kita dapat menentukan versi menggunakan sifat seperti:

 9 9 

Maven added its support for Java 9 in 3.5.0, so we'll need at least that version. We'll also need at least 3.8.0 of the maven-compiler-plugin:

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

4.2. Build

Now it's time to test our configuration.

First, let's create a MavenCompilerPlugin class in which we're importing a package from another module.

A simple one is javax.xml.XMLConstants.XML_NS_PREFIX:

public class MavenCompilerPlugin { public static void main(String[] args) { System.out.println("The XML namespace prefix is: " + XML_NS_PREFIX); } }

Next, let's compile it:

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

When using Java 9 defaults, though, we'll get an error:

[ERROR] COMPILATION ERROR : [ERROR] .../MavenCompilerPlugin.java:[3,20] package javax.xml is not visible (package javax.xml is declared in module java.xml, but module com.baeldung.maven.java9 does not read it) [ERROR] .../MavenCompilerPlugin.java:[3,1] static import only from classes and interfaces [ERROR] .../MavenCompilerPlugin.java:[7,62] cannot find symbol symbol: variable XML_NS_PREFIX location: class com.baeldung.maven.java9.MavenCompilerPlugin

The error comes from the fact that this package is in a separate module that we haven't included yet in our build.

Kaedah paling mudah untuk menyelesaikannya adalah dengan membuat kelas modul-info.java dan menunjukkan bahawa kami memerlukan modul java.xml :

module com.baeldung.maven.java9 { requires java.xml; }

Sekarang kita boleh mencuba lagi:

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

Dan output kami adalah:

The XML namespace prefix is: xml

5. Kesimpulan

Dalam artikel ini, kami membahas pemalam penyusun dan menerangkan cara menggunakannya. Kami juga mengetahui tentang sokongan Maven untuk Java 9.

Kod sumber lengkap untuk tutorial ini boleh didapati di GitHub.

Seterusnya » Panduan Pantas untuk Maven Install Plugin « Sebelumnya Maven Resources Plugin