• 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