IDEA中每天都在⽤的ProjectStructure,你了解多少?
Idea这款开发⼯具的便利之⼀是很多配置项⼏乎可直接使⽤默认项。但针对不同的项⽬难免需要针对性的配置,本⽂带⼤家详细的梳理⼀遍Project Structure中各项功能,注意收藏,以备不时之需。
idea配置artifacts
先说⼀下写本⽂的缘由,在项⽬中⽤Idea中打开⼀组SpringBoot项⽬,结果编译的结果和⽇志输出的地⽅与预期不⼀致,于是仔细研究了Project Structure的配置项,发现此处竟然有很多有⽤的功能,汇总分享给⼤家。
Project Structure即“项⽬结构”,它⼏乎涵盖了⼀个项⽬所有的个性化的配置项,包括Modules,Facets,Libraries, Artifacts和SDK等板块的功能。
开启项⽬结构配置有两种⽅式,⼀种⽅式是点击上图①位置的图标便可直接打开相关的配置界⾯。
另外⼀种⽅式便是通过快捷键打开。Windows操作系统,默认快捷键为“Ctrl+Shift+Alt+S”;Mac操作系统默认快捷键为“command + ;”组合。
第⼀种⽅式如果不到对应配置,教⼤家⼀个使⽤Idea时的⼀个⼤招:“Help”搜索。
点开Help菜单,输⼊Project关键字进⾏搜索,默认会匹配到所有与Project关键字相关的选项,当⿏标移动到对应结果上时,左边会⾃动显⽰对应内容所在的菜单位置,当然你也可以直接点击打开。
不仅此处可以如此操作,⼤多数操作都可以如此,是不是⽤起来⾮常爽!
Project
⼀般情况下,打开之后第⼀个默认选中的显⽰内容便是Project了。重点看⼀下图中的1、2、3、4项。
第⼀项,Project name,项⽬名。就个⼈⽽⾔,⼀般会将此处的项⽬名与项⽬⽬录名和pom⽂件中的name三处保持⼀致。避免不⼀致,同时也避免IDEA在左侧会显⽰多个名称标识。
如果打开的是⼀组项⽬,⽐如都说springboot的项⽬,此处本⼈会改为类似springboot-all这样的名称,
springboot教程全集⽽不是其中⼀个(默认是第⼀个)项⽬的名称。
第⼆项,Project SDK。配置项⽬的SDK使⽤,这项平时使⽤的⽐较多,⽐如新打开⼀个项⽬,要查看⼀下SDK版本是否与预期的⼀致。也可以在右边的Edit进⾏SDK的编辑。
此处点击编辑会跳到Platform Settings中的SDKs处进⾏操作。此处看⼀下图,操作⽐较简单,就不展开了。
第三项,Project language level。选择要⽀持的Java语⾔级别。如果是多个Module(可以理解为⼀组项⽬)的话,对所有Module⽣效。
不同的JDK版本选择,对代码的语法有⼀定的影响,⽐如选择JDK8以前的版本,那么代码中有基于Lambda的语法将会报错。⽬前使⽤最多的当属JDK8了,当然如果你的项⽬⽐较古⽼或⽐较新,也可以选择其他的版本。
个人简介页面第四项,Project compiler output。指定IntelliJ IDEA将存储编译结果的路径。
开篇时说的问题就在此。针对单个项⽬,可以在配置⼀个输出路径,同时也可以在后⾯提到的Module中进⾏独⽴配置。
但对于多个Module项⽬时,会出现⼤家共⽤⼀个output⽬录。此时如果输出的⽇志⽂件路径⽤“./log”这种形式时,⽇志可能并不会打印到其中的⼦项⽬中,⽽是输出在此处指定的路径下了。
Modules
Modules中的配置⽤的⽐较多的情况就是⼀组项⽬时,可以配置独⽴每个项⽬的参数。包括项⽬名称,⽬录结构,输出路径,依赖等。
html编程手册
下⾯分析⼀下图中标注的四项内容,其中第三和第四项属于Source选项的⼦项。
第⼀项,加号可以导⼊、新增各类Module项⽬,当然后⾯的减号可以移除对应的项⽬。
第⼆项,项⽬名称,使⽤⽅式与前⾯的⼀致,也同样建议多处保持⼀致。
第三项,JDK版本,与Project中⼀样,但此处针对的是当前Module。
第四项,项⽬⽬录结构。对Module的开发⽬录进⾏⽂件夹分类,不同类型的⽂件进⾏指定的⽂件类型。
上⾯分了Sources、Test、Resources、Test Resources、Excluded。
顾名思义,Sources放的是Java源码,Test放的是测试的源码,Resources放的是资源⽂件,Test Resources放的是测试使⽤的资源⽂
件,Excluded是排除项(⽐如编译后的trarget⽬录)。
此处使⽤⽐较多的场景是新增⽂件夹。右击⼀个顶层⽬录,弹出“New Folder”创建⽬录,随后可以对新增的⽂件夹进⾏类型指定。常见的情况⽐如创建的项⽬没有test或Test Resources,可在此处进⾏添加⽬录,然后指定⽬录类型。
js验证表单firefoxmonitor与Sources选项平级的还有Paths和Dependencies。这两项操作都⽐较简单,Paths⽤来指定编译输出路径。
⼀般采⽤默认值即可。其中,Inherit projecty compile output path继承项⽬编译输出路径,使⽤为项⽬指定的路径。即在Project选项中设置的out⽂件路径。
Use module compile output path,使⽤模块编译输出路径;Output path为编译输出路径;Test output path为测试代码编译输出路径。
下⾯的JavaDoc使⽤可⽤控件组合与模块关联的外部JavaDocs存储位置的列表。不常⽤,就不具体演⽰了。
另外⼀个是Dependencies,主要配置jar包依赖相关的内容。
这⾥同样可以配置JDK,还可以通过下⾯的加号引⼊其他依赖,同时还可以配置对应jar包所对应的Scope。
上⾯讲解了多处JDK配置的选项,如果在实战过程中出现JDK版本修改或不⼀致的问题,建议从头到尾查看⼀下各处JDK的版本是否有问题。
Libraries
Libraries选项卡⾥,可以定义模块SDK并形成模块依赖关系列表。
通过加号⾥⾯的操作可以创建⼀个新的项⽬库,可以设置分类,可以删除等操作。
Facets
Facets选项主要⽤来表⽰module的特征,⽐如Web、Spring、Hibernate等。
上图以Spring Boot项⽬为例,可看到项⽬的配置⽂件、启动类、MVC等相关特性。如果是web项⽬,还可以看到下⾯的⼀些信息(图⽚来源于⽹络)。
Artifacts
Artifact是maven中的⼀个概念。这⾥表⽰module打包成什么形式,⽐如:war exploded、war、jar等;
这种形式在基于SpringBoot项⽬时很少使⽤了,基于Web打war包的形式时使⽤的⽐较多。
其中web项⽬有exploded类型,这⾥可理解为不归档的意思,也就直接把⽂件夹、jsp页⾯、classes进⾏部署到容器⾥⾯。建议在开发时使⽤此模式,便于热部署。
默认情况下,IDEA的Modules和Artifacts的output⽬录已设置好,不需要更改。打war包时会⾃动在WEB-INF⽬录下⽣成classes⽬录,并把编译后的⽂件放进去。
关于其他选项就不多说了,不太常⽤。其中,SDKs选项为系统开发⼯具,全局SDK配置,新增JDK版本什么的都可以在此配置。Global libraries是全局类库,可以配置⼀些常⽤的类库。Problems在项⽬异常的时可以根据提⽰进⾏项⽬修复(FIXED)。
因项⽬实战过程中的⼀个问题,研究拓展出整个Project Structure相关的知识体系,这也是⼀个思维和学习的模式。关注“程序新视界”,为你提供更多类似的实战经验和知识积累。
程序新视界:精彩和成长都不容错过
程序新视界

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。