此篇我们来说下在IntelliJ IDEA中,如何将项目src目录下的包结构改为紧凑中间包的形式,以及不小心将resouces资源包中的目录改为紧凑型包的解决方法。

 

一、勾选Compact Middle Packages将src下的包改为紧凑中间包型

       1)将层级式改为紧凑型

       我们之前导入springbootinit结束后,看到的目录是下图中的层级式。

resource怎么打包 resource pack_ide

       点击一下项目资源管理器右上角的齿轮图标,可以看到此时Compact Middle Packages是未勾选状态。

resource怎么打包 resource pack_ide_02

       2)勾选Compact Middle Packages

       勾选上Compact Middle Packages之后,包结构就变成紧凑型的了,就是这么简单。

resource怎么打包 resource pack_目录结构_03

       3)尝试下勾选Flatten Packages

       我们也可以尝试下别的选项,比如Flatten Packages。在尝试之前,先回到下图中层级式包结构的初始状态。

resource怎么打包 resource pack_ide

       勾选Flatten Packages之后,发现多了好几个目录,但其实除了com.xdyangf.springbootinit,com和com.xdyangf这两个目录都是空的。此时的目录结构,可以称为平铺式包结构(我自己起的)。

resource怎么打包 resource pack_resource怎么打包_05

       3)同时勾选Flatten Packages和Hide Empty Middle Packages

       不知道大家有没有注意,当勾选了Flatten Packages之后,Compact Middle Packages选项就消失了,但多出了一个Hide Empty Middle Packages选项,此时我们将Flatten Packages和Hide Empty Middle Packages都勾选上,则会发现,如下图中所示,当前项目也变成了紧凑型的包结构。

resource怎么打包 resource pack_resource怎么打包_06

       4)在Compact Middle Packages下转换为Flatten Packages

       我们再做一个实验,先将项目资源管理器改为下图中的Compact Middle Packages状态。

resource怎么打包 resource pack_目录结构_03

       接着,选择Flatten Packages,会发现,从Compact Middle Packages切换到Flatten Packages的话,Hide Empty Middle Packages(隐藏空包)会自动为勾选状态。

       也就是说,我们可以暂时认为Compact Middle Packages == Flatten Packages + Hide Empty Middle Packages。

resource怎么打包 resource pack_ide_08

 

二、resouces资源包中出现紧凑型目录的解决

       以下的内容是我在给资源包中创建子目录时遇到的一些问题。

       1)在static中创建子文件夹

       如下图所示,如果我们想在static中创建一个名叫css的子目录,按照正常的思路,在static上右键,并点击New>Directory即可。

resource怎么打包 resource pack_目录结构_09

       接着输入目录名css,并按下回车键。

resource怎么打包 resource pack_目录结构_10

       但是,看下图中,并没有出现我们想要看到的层级式目录结构,而是出现了static.css这样和src中一样的紧凑中间包结构。

resource怎么打包 resource pack_ide_11

       出现这样的情况是合理的,为什么呢,看下图。因为此时正是Compact Middle Packages的设定,因此,resources中的目录结构将和src中的包结构一样,都会将中间的空包收缩起来,导致最后是紧凑中间包结构。正是因为static目录中没有文件,因此static被收缩起来了,整体成为了static.css形式。

resource怎么打包 resource pack_css_12

       2)暂时取消Compact Middle Packages

       如果我们只是往css里面添加html等文件,则无需再做任何修改,继续右键static.css,点击New>Stylesheet即可在static.css目录下新建css文件。

resource怎么打包 resource pack_resource怎么打包_13

       但是,如果我们想往static目录下(不是static.css)添加别的文件就无从下手了。同时,如果我们想在static目录下添加新的子目录也不好办,如下图所示,我们先回到static.css空文件夹的状态。

resource怎么打包 resource pack_ide_14

       本来打算想往static下添加一个和css同级的js目录,结果如下图所示,js右跟在static.css后面了,成为了static.css.js紧凑型目录结构了。

resource怎么打包 resource pack_ide_15

       这个时候我们需要怎么办,其实很简单,先暂时地将Compact Middle Packages取消勾选即可。如下图所示,这时resources中的空包都已经显现,而且,可以看到,我们本想添加在static下的js目录,却添加到了css下面。

resource怎么打包 resource pack_目录结构_16

       此时,我们可以选择右键js,并点击Delete删除掉位置错误的js目录。

resource怎么打包 resource pack_ide_17

       3)添加了子文件后再勾选上Compact Middle Packages

       我们先回到下图中删除了js目录的这一步。

resource怎么打包 resource pack_ide_18

       那么有人就要问了,我现在将Compact Middle Packages取消勾选了,但是src中的包结构也就随之变成了层级形式了,但是我不习惯这样去开发src中的.java文件。

       那么这个问题也很好解决,为了能让src中的包结构回到紧凑型的状态,我们只需往resources中的空目录里添加一些不用的html文件,然后再勾选上Compact Middle Packages即可。

       如下图所示,我除了给css目录中添加了一个需要用的bootstrap.css文件之外,还给static目录下添加了一个不需要用到的nothing.html文件。

resource怎么打包 resource pack_resource怎么打包_19

       再勾选上Compact Middle Packages,我们就可以看到static和css已经不会再所谓紧凑目录static.css了。同时,src中的包结构也回到了紧凑型。

resource怎么打包 resource pack_ide_20

 

三、Eclipse中稳固的包结构

       又到了尴尬的对比时间,我们来看看使用Eclipse在resouces中的static空目录下添加一个css目录会怎么样,结果是,不会像IntelliJ IDEA那样缩为紧凑型结构。

resource怎么打包 resource pack_ide_21

 

       所以,你们可以再次告诉大家,你们喜欢用IntelliJ IDEA还是Eclipse。