maven 对于java的要求_如何在Maven中表达对Java EE功能的依赖以过渡到Java 9?
該模塊系統(tǒng)講的無名模塊作為在從類路徑加載應用的情況下構(gòu)建模塊圖的方式。此外,從文檔本身來看:
當編譯器在未命名模塊中編譯代碼,或者調(diào)用Java啟動程序并將應用程序的主類從類路徑加載到應用程序類加載器的未命名模塊中時,則將使用未命名模塊的默認根模塊集計算如下:
該java.se模塊是根(如果存在)。如果不存在,則java.*升級模塊路徑上或系統(tǒng)模塊中的每個模塊exports中至少有一個無限定的軟件包是根。
non-java.*升級模塊路徑上或系統(tǒng)模塊中exports至少有一個無限制的軟件包的每個模塊也是根。
否則,默認的根模塊集取決于以下階段:
在編譯時,通常是正在編譯的模塊集(有關更多信息,請參見下文)。
在鏈接時為空;和
在運行時,它是應用程序的主模塊,通過 --module(或簡稱-m)啟動器選項指定。
有時需要將模塊添加到默認根集中,以確保特定的平臺,庫或服務提供者模塊將出現(xiàn)在模塊圖中。在任何階段都可以選擇
--add-modules (,)*其中是模塊名稱,將命名模塊添加到默認的根模塊集合中。
在jetty.project中也遇到了類似的問題,其中jdk郵件列表中的一個線程在同一主題上進行了討論,并使用以下解決方法:
--add-modules java.se.ee
使他們可以訪問所有Java SE模塊的方法,在您的情況下,應為:
--add-modules java.xml.bind
要在maven中使用它,可以將其嵌入到maven-compiler-plugin using中。
--add-modules
java.xml.bind
正如ZhekaKozlov 在這里建議的那樣。
需要注意的重要一點是,標記不贊成使用API也意味著您可能想擺脫使用它的習慣。為了適應這種方式,您可能可以開始使用依賴項jaxb-api:2.3.0,現(xiàn)在可以將其作為模塊加載,也可以從類路徑中執(zhí)行。您需要進行的更改是將以下內(nèi)容添加到依賴項列表中:
javax.xml.bind
jaxb-api
2.3.0
更新:-最終,在Java-10已經(jīng)發(fā)布并且接下來是JDK / 11的情況下,理想情況下應該遵循指向 JEP 320的鏈接:刪除Java EE和CORBA模塊,并進一步將此類依賴關系替換為其獨立的庫。
總結(jié)
以上是生活随笔為你收集整理的maven 对于java的要求_如何在Maven中表达对Java EE功能的依赖以过渡到Java 9?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IP 数据报首部分析
- 下一篇: Java 源程序的良好书写规范有哪些_使