Pakej JAXB tidak lagi wujud di Java 11
Pengenalan
Apabila berhijrah dari Java 8 ke Java 11, pengguna mungkin menghadapi ralat penyusunan "pakej javax.xml.bind tidak wujud." Ralat ini berpunca daripada pengalihan keluar pakej javax.xml.bind (JAXB) dalam Java 11.
Sebab
Seperti dalam Java Enhancement Proposal (JEP) 320, Java 9 ditamatkan dan Java 11 mengalih keluar modul Java EE, termasuk JAXB. Perubahan ini dibuat untuk menyelaraskan edisi Java dan strategi ekosistem.
Penyelesaian
Untuk menyelesaikan isu ini, anda boleh menggunakan versi alternatif teknologi Java EE dengan menambahkan Maven berikut kebergantungan kepada projek anda:
<code class="xml"><dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency></code>
Kemas Kini Jakarta EE 8 (Mac 2020)
Anda juga boleh menggunakan Jakarta XML Binding dari Jakarta EE 8:
<code class="xml"><dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.3</version> <scope>runtime</scope> </dependency></code>
Kemas Kini Jakarta EE 9 (Nov 2020)
Jakarta EE 9 membawa keluaran terbaru Jakarta XML Binding 3.0. Untuk meningkatkan binaan anda:
<code class="xml"><dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>3.0.0</version> <scope>runtime</scope> </dependency></code>
Nota: jakarta.xml.bind memerlukan Java 8 atau lebih baru.
Jakarta EE 10 (Jun 2022) Kemas Kini
Jakarta EE 10 membawa keluaran terbaru Jakarta XML Binding 4.0. Untuk meningkatkan binaan anda:
<code class="xml"><dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>4.0.0</version> <scope>runtime</scope> </dependency></code>
Nota: jakarta.xml.bind 4.0 memerlukan Java SE 11 atau lebih baru.
Atas ialah kandungan terperinci Mengapa pakej JAXB tidak lagi tersedia di Java 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!