开源项目经常看到 package-info.java 文件,到底有啥用?

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

一、pacakge-info.java介绍

pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中。pacakge-info.java的目标是提供一个包级的文档说明或者是包级的注释。

开源项目经常看到 package-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…菜单项,如图所示:

开源项目经常看到 package-info.java 文件,到底有啥用?

在Generate JavaDoc窗口,输入相关设置。

第一步:选择生成JavaDoc文档的范围,下图中,我们可以选择Module模块。

第二步:输出目录最好新建一个文件夹,比较有条理和整洁。

第三步:区域(Locale)设置,决定文档的语言,简体中文就是zh_CN、繁体(*)zh_tw、繁体(香港)zh-hk、英语(香港)en-hk、英语(美国)en-us、英语(英国)en-gb、英语(全球)en-ww。

开源项目经常看到 package-info.java 文件,到底有啥用?

设置完成后点击【OK】按钮即可生成Doc文档。找到输出目录,然后打开 index.html 便能看生成的文档。

开源项目经常看到 package-info.java 文件,到底有啥用?

查看类的文档,如图所示:

开源项目经常看到 package-info.java 文件,到底有啥用?

三、创建package-info文件

package-info文件不能随便被创建,会报“This is not a valid Java qualified name”错误,类名无效,Java变量定义规范是:字母、数字、下划线,还有那个不怎么常用的$符号,这个中划线可不在之列,那怎么创建这个文件呢?

开源项目经常看到 package-info.java 文件,到底有啥用?

可以创建一个普通的文件,如图所示,文件名为package-info.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);
 }
}

开源项目经常看到 package-info.java 文件,到底有啥用?

在包外的任意类调用包常量,则会提示报错。

五、提供包级别的注释

使用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文档,如图所示:

开源项目经常看到 package-info.java 文件,到底有啥用?

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

上一篇:(二十)c#Winform自定义控件-有后退的窗体


下一篇:Java软件开发面试题!Java程序设计课后题答案解析