通過Java 9模塊系統(tǒng)入門

2018-08-17 14:31 更新

通過Java 9模塊系統(tǒng)入門

下面討論的功能基于IntelliJ IDEA和JDK 9的早期訪問版本,并且可能在將來發(fā)生變化。

Java平臺模塊系統(tǒng)(JSR 376)又稱Project Jigsaw,目標(biāo)是成為JDK 9版本的一部分。JSR描述的系統(tǒng)目標(biāo)是:

  • 可靠的配置,用一種程序組件聲明彼此之間顯式依賴關(guān)系的方法取代脆弱的、容易出錯的類路徑機制
  • 強大的封裝,允許組件聲明其中哪些公共類型可供其他組件訪問,哪些不可訪問。

IntelliJ IDEA已經(jīng)有一個項目模塊的概念。每個IntelliJ IDEA模塊都構(gòu)建自己的類路徑。 

隨著新的Java平臺模塊系統(tǒng)的引入,如果使用Java平臺的模塊路徑而不是類路徑,IntelliJ IDEA模塊必須通過支持Java平臺的模塊路徑來擴展其功能。 

在本教程中,我們將探討IntelliJ IDEA在創(chuàng)建和使用Java平臺模塊方面提供的幫助,以及這些模塊如何與IntelliJ IDEA模塊協(xié)同工作。 

創(chuàng)建一個模塊

在IntelliJ IDEA中創(chuàng)建模塊后,我們可以通過在模塊源目錄下創(chuàng)建module-info.java文件將其定義為Java平臺模塊。 

每個IntelliJ IDEA模塊最多只能有一個Java平臺模塊。我們可以通過選擇我們想要創(chuàng)建它的源目錄并使用菜單選項:New|module-info.java(New | module-info.java)為我們的模塊創(chuàng)建一個新的module-info.java。 

Jigsaw創(chuàng)建模塊信息

創(chuàng)建module-info.java聲明文件時,IntelliJ IDEA將選擇IntelliJ IDEA模塊的名稱作為Java Platform模塊的默認(rèn)名稱。這可以更改,不需要匹配。 

拼圖模塊名稱

使用模塊

與所有java文件類型一樣,IntelliJ IDEA幫助我們對module-info.java內(nèi)容進(jìn)行自動完成和有效性檢查。

需要在IntelliJ IDEA和Java Platform(Jigsaw)模塊中定義模塊的依賴關(guān)系。 IntelliJ IDEA幫助我們保持同步。 要定義項目模塊之間的依賴關(guān)系,我們可以在module-info.java中編寫一個requires聲明,然后IntelliJ IDEA會建議我們將它作為依賴項添加到其模塊中。 這也適用于庫依賴項,但前提是庫jar文件已經(jīng)聲明為項目依賴項。 

Jigsaw從模塊信息中添加依賴項

從另一個方向,我們可以編寫我們的java代碼。IntelliJ IDEA將建議將其他模塊添加為對當(dāng)前模塊的依賴,然后還建議我們添加requires聲明。 

Jigsaw從代碼中添加依賴項

運行模塊

在IntelliJ IDEA中運行類時(使用快捷鍵Ctrl+Shift+F10),將使用Java平臺模塊中聲明的信息。這意味著IntelliJ IDEA將使用模塊路徑而不是類路徑運行JVM。這將強制執(zhí)行我們從模塊系統(tǒng)獲得的強封裝,然后我們可能會遇到的任何依賴性問題都會被此次運行重現(xiàn)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號