我们日常都习惯使用Inteilj IDEA进行日常的Java 后台项目的开发,常常需要生成多级文件夹构成的目录。在用于存放main.java
的源文件目录下,例如要生层一个包含多级com/example/demo
的多级文件目录,直接新建一个package,名称填写com.example.demo
即可,IDEA会系统帮我们将填写的com.example.demo
生成一个嵌套的多级目录。
于此类似,在resources资源文件夹目录下,有时我们也需要建立多级目录,例如在编写SPI机制的Demo的过程中,需要建立一个META-INF/services
的多级目录,目录下是一个以接口路径命名的文本文件。如果采用与源文件目录下下建立多级目录类似的方式去操作,那么恭喜你,跟在下一样踩坑了:此时IDEA并不会帮助你生成META-INF嵌套services的多级目录,而是生成一个名称为META-INF.services
的单级目录。

下面说一下排查问题的过程:
首先,看一下直接new package,name ="META-INF.services"时生成的classes文件夹目录结构:

再看一下先在resources目录下先建立META-INF
文件夹,再建立services
文件夹的方式,生成的class文件夹目录结构:

解决方案比较蠢,多次点击new package的方式建立多级目录。
网友评论