开源项目经常看到 package-info.java 文件,到底有啥用?
来源:https://www.toutiao.com/i6992877750461825544/
一、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文档,如图所示:
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2021最新版)
2.别在再满屏的 if/ else 了,试试策略模式,真香!!
3.卧槽!Java 中的 xx ≠ null 是什么新语法?
4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!
觉得不错,别忘了随手点赞+转发哦!