idea无法显示项目的目录?

   
这个问题可能很多人遇到了,在这做个小结,导致这个问题的原因可能是因为克隆下来的项目没有Module(即没有.iml文件)导致idea无法识别,在这先说一下如何解决,之后再做一个分析。步骤如下,就不放图了:

file => project structure => Modules =>  '+'  => import modules => 选中项目 =>
create modules => next......

之后应该就可以看到项目结构了。

   
那么什么是module呢?module是组件,模块的意思,也就是说在项目里module是project的一部分,一个项目可以有多个module。在idea里创建一个新的项目的时候,一般都会创建一个module。现在新建了一个项目(如下图),并且项目内建了一个名叫redis的module,并在module里规定了项目里的文件属于哪种类型(Mark
as Sources、Tests、Resource...)。



   
可以看到在左侧的项目目录里,生成了一个redis.iml的文件,其实这个文件就是和modules相关的文件,这个文件里说明了一些模块的信息,比如用了哪些facet(这个后面再讲)、某个文件属于以上五种类型的哪种。没有了这个文件,idea无法识别出文件的类型,自然无法显示出目录结构。modules只是idea为了方便开发支持的特性,和代码关系不大。

 

    我们可以看到从git上clone的项目并没有以'.iml'结尾的文件,所以idea无法完整的展示项目的目录。

   
一般在开发的时候都会将这些和项目代码无关的文件加入到gitignore里的,这样在开发时只提交和项目有关的代码就行了。另外。。。可以看到上图中有个.project的文件,这个文件和
.iml 文件作用类似,只不过它是使用eclipse开发时生成的,其实也应该加入gitignore的。

    另外,在使用idea导入项目时还可能出现这样一种情况:

Spring Configuration Check

Unmapped Spring configuration files found.Please configure Spring facet.

fangmaster (14 files)



这个就与刚才提到facet有关了。

工程结构(project settings)有一个facets选项可以设置各种框架,idea使用它来管理工程用到的框架,

比如添加了Spring框架,那么在Spring的xml中properties文件的占位符可以被自动替换为properties中已配置的值,idea
就是靠的它~。

Web项目就要添加Web的facet,Spring项目就要添加Spring的facet等等。。。如下图是把sping的配置文件勾上。