開源項目中經常看到 package-info.java 文件,你知道其作用嗎?

點擊下方“IT牧場”,選擇“設爲星標”

 一、pacakge-info.java介紹

pacakge-info.java是一個Java文件,可以添加到任何的Java源碼包中。pacakge-info.java的目標是提供一個包級的文檔說明或者是包級的註釋。

pacakge-info.java文件中,唯一要求包含的內容是包的聲明語句,比如:

/**
* This is domain module, the core business logic is implemented here.
*
*/

package com.rickie.tracking.domain;


在Java 5之前,包級的文檔是package.html,是通過JavaDoc生成的。而在Java 5以上版本,包的描述以及相關的文檔都可以寫入pacakge-info.java文件,它也用於JavaDoc的生成。


◆ 二、使用IDEA生成JavaDoc文檔

在IDEA中,選擇Tools/Generate JavaDoc…菜單項,如圖所示:

在Generate JavaDoc窗口,輸入相關設置。

第一步:選擇生成JavaDoc文檔的範圍,下圖中,我們可以選擇Module模塊。

第二步:輸出目錄最好新建一個文件夾,比較有條理和整潔。

第三步:區域(Locale)設置,決定文檔的語言,簡體中文就是zh_CN、繁體(臺灣)zh_tw、繁體(香港)zh-hk、英語(香港)en-hk、英語(美國)en-us、英語(英國)en-gb、英語(全球)en-ww。

設置完成後點擊【OK】按鈕即可生成Doc文檔。找到輸出目錄,然後打開 index.html 便能看生成的文檔。

查看類的文檔,如圖所示:


◆ 三、創建package-info文件

package-info文件不能隨便被創建,會報“This is not a valid Java qualified name”錯誤,類名無效,Java變量定義規範是:字母、數字、下劃線,還有那個不怎麼常用的$符號,這個中劃線可不在之列,那怎麼創建這個文件呢?

可以創建一個普通的文件,如圖所示,文件名爲package-info.java。或者更直接的辦法就是從別的項目中拷貝過來一個。


◆ 四、提供包級別的變量

如果想在包裏面使用對應的變量,而不想讓其他包使用,就可以將變量放到package-info.java下面,實現分包自用的理念。

/**
* This is domain module, the core business logic is implemented here.
*
*/

package com.rickie.tracking.domain;

/**
* 包常量
*/

class PACKAGE_CONST{
public static final String COLA="《COLA 4.x架構入門和項目實踐》技術專欄首先介紹了COLA框架的使用入門,以及與IDEA開發工具的集成等等;然後基於COLA架構,創建DDD經典示例項目-貨物運輸系統,詳細介紹了DDD領域建模、適配層、應用層、領域層和基礎設施層的代碼開發、防腐層(ACL)設計與實現、領域事件(Domain Event)入門實踐、以及基於Kafka消息中間件的消息發佈和訂閱等等。內容由淺入深,從開發實戰出發,逐步掌握基於COLA架構和DDD領域建模思想構建複雜業務應用系統。";
}


在包內的任意類調用包常量,示例代碼如下所示:

public class Test {
public static void main(String[] args) {
System.out.println(PACKAGE_CONST.COLA);
}
}


在包外的任意類調用包常量,則會提示報錯。


◆ 五、提供包級別的註釋

使用JavaDoc的時候,通過在package-info.java添加註釋,生成JavaDoc實現對應包的註釋說明。

/**
* 描述: COLA 領域模塊<br>
* This is domain module, the core business logic is implemented here. <br>
* 創建時間: 2021/8/1 12:00 <br>
* @version v1.0
*/

package com.rickie.tracking.domain;

/**
* 包常量
*/

class PACKAGE_CONST{
public static final String COLA="《COLA 4.x架構入門和項目實踐》技術專欄首先介紹了COLA框架的使用入門,以及與IDEA開發工具的集成等等;然後基於COLA架構,創建DDD經典示例項目-貨物運輸系統,詳細介紹了DDD領域建模、適配層、應用層、領域層和基礎設施層的代碼開發、防腐層(ACL)設計與實現、領域事件(Domain Event)入門實踐、以及基於Kafka消息中間件的消息發佈和訂閱等等。內容由淺入深,從開發實戰出發,逐步掌握基於COLA架構和DDD領域建模思想構建複雜業務應用系統。";
}

生成對應的JavaDoc文檔,如圖所示:



來源:

https://www.toutiao.com/i6992877750461825544/

乾貨分享

最近將個人學習筆記整理成冊,使用PDF分享。關注我,回覆如下代碼,即可獲得百度盤地址,無套路領取!

001:《Java併發與高併發解決方案》學習筆記;002:《深入JVM內核——原理、診斷與優化》學習筆記;003:《Java面試寶典》004:《Docker開源書》005:《Kubernetes開源書》006:《DDD速成(領域驅動設計速成)》007:全部008:加技術羣討論

加個關注不迷路

喜歡就點個"在看"唄^_^

本文分享自微信公衆號 - IT牧場(itmuch_com)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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