共计 3174 个字符,预计需要花费 8 分钟才能阅读完成。
Idea 这款开发工具的便当之一是很多配置项简直可间接应用默认项。但针对不同的我的项目不免须要针对性的配置,本文带大家具体的梳理一遍 Project Structure 中各项性能,留神珍藏,以备不时之需。
先说一下写本文的原因,在我的项目中用 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 这样的名称,而不是其中一个(默认是第一个)我的项目的名称。
第二项,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 中的配置用的比拟多的状况就是一组我的项目时,能够配置独立每个我的项目的参数。包含项目名称,目录构造,输入门路,依赖等。
上面剖析一下图中标注的四项内容,其中第三和第四项属于 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,可在此处进行增加目录,而后指定目录类型。
与 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 相干的常识体系,这也是一个思维和学习的模式。关注公众号“程序新视界”,为你提供更多相似的实战经验和常识积攒。
<center> 程序新视界 :精彩和成长都不容错过 </center>