一、概述
无论是在打jar
或war
包时,都会生成META-INFO
这个文件夹。我们需要了解这个路径,丰富自己的知识框架。
二、详解
2.1 META-INFO 的作用
官方一点的说法:META-INF 相当于一个信息包,目录中的文件和目录获得 Java 2 平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务manifest.mf
文件,在打包时自动生成。
简单的说法:就是存储了项目的元信息,其中文件manifest.mf
仅此一份,描述了程序的基本信息、Main-Class
的入口、jar
依赖路径Class-Path
。
2.2 是否可以在开发过程中使用?
由于这个目录下的信息大多是项目构建时自动生成,所以在不必要的情况下,不建议使用这个目录或修改这里的文件。
当然,我们在学习或使用spi
时,会用到META-INFO
下的services
目录,我们会在这个目录下建一个接口全限定名,内容为实现类的全限定的类名。这时我们算是直接使用了这个目录,在这种情况下打出war
包,解析包后我们会发现META-INFO/services
这个目录其实是放在了WEB应用的安全目录WEB-INF下。
所以结论是:基本不用从开发的角度不用过多去关心这个目录,也不要挑战自己去破坏这个路径。然而在spi
的特殊情况下,还应遵循这种JDK
内置的服务提供发现机制。
官方文档:https://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html