在IDEA中創建Java 9 modules(模塊)的Hello World


IntelliJ IDEA 2017.1 支持Java9的模塊化特性 (Project Jigsaw)。 在此版本,模塊文件中還支持基於特定名稱與關鍵字的自動補全功能 code completion, 並且你可以快速斧正你項目中的模塊化代碼。

So,那就讓我們來一探究竟什麼是模塊化工程。首先,我們創建一個普通的模塊工程 IntelliJ IDEA module 其中包含了改變世界的偉大的 “Hello World” 。

A simple application

IntelliJ IDEA 會引導你在工程中爲你的模塊創建一個module-info.java

Create new module-info.java

module-info.java 將爲你提供一個基礎的模塊代碼結構。

Default module-info.java

一切聽指揮,黨會指引你正確的道路!
此時,當你在按照以往那樣使用一個Java類時,你就會看到模塊化帶來的新姿勢。

Error using Logger

Here,IntelliJ IDEA可以幫助你找出問題所在,並提出修復建議。

Add requires to module-info.java

如你所料,進行這個操作之後IntelliJ IDEA對module-info.java文件進行了正確的更改。

Requires added

當然,你也可以嘗試自己編輯module-info.java文件,IDEA 會給你完整的補全和提示信息。

Code completion in module-info.java

快速修復不僅可用於標準Java模塊,還可幫助您自己編寫模塊代碼。如果您嘗試訪問另一個IntelliJ IDEA模塊中的代碼,從一個模塊的內部來使用模塊化特性 (module-info.java文件中會有提示), IntelliJ IDEA 將會提示你如果沒有進行正確的更改,是不能運行的。

Using other modules

首先,有很多提示來幫助你完成更改,所以,一旦module-info.java 文件所在的模塊下有java文件,你可以快速補齊後面的包路徑。

Code completion for exports

回到這個被導入模塊的類中來,使用Alt 和 Enter 來獲取fix建議。這裏有兩個步驟:firstly, 模塊 one 需要依賴模塊two。一旦此操作完成,模塊onemodule-info.java文件就能關聯模塊two.

Quick fixes for using modules

這裏有兩個模塊,需要格外注意的是:firstly, the IntelliJ IDEA modules 你可能已經熟悉; and secondly, 新的 Java 9 (Jigsaw) 模塊被指定使用module-info.java。 要使用Java模塊化特性,每個Java 9模塊都需要對應於IntelliJ IDEA模塊。還要注意的是(IntelliJ IDEA 2017.1中的最後一個示例所示),需要聲明IntelliJ IDEA模塊依賴關係以及Java 9模塊依賴關係。所以在最後一個例子中,模塊one依賴模塊two:

IntelliJ IDEA module dependencies

但是在module-info.java文件中也需要聲明它是關聯模塊two的:

Module-info dependency

原文:https://blog.jetbrains.com/idea/2017/03/support-for-java-9-modules-in-intellij-idea-2017-1/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章