IntelliJ IDEA 学习笔记 - 项目相关的几个重要概念介绍
2017-12-05 10:19
603 查看
本文简单介绍IntelliJ IDEA里项目相关的几个重要概念,参考IntelliJ IDEA 简体中文专题教程,英文好的同学可以查看英文官网文档
在 IntelliJ IDEA 中
一个
以
项目主页:https://github.com/spring-projects/spring-framework
该项目的
该
相比较于多
IntelliJ IDEA 支持 6 种 SDK。最常用的就是 JDK 和 Android SDK,其中在创建 Android SDK 的时候如果你没有先配置一个 JDK 的话,IntelliJ IDEA 则会提示你要先配置一个 JDK,然后才能配置 Android SDK,点击上图界面中的
由于 IntelliJ IDEA 支持管理多个 JDK,下拉会展示已经创建的所有 SDK,可以很方便地不同 SDK 中切换。所以在开发 Java 项目过程中,完全不用担心系统上不同项目需要不同 JDK的问题,如下
按
加号
当我们使用 JDK 8 的时候,我们只能向下兼容 JDK 8 及其以下的特性,所以只能选择 8 及其以下的
假设我们有一个项目代码使用的 JDK 8 新特性:lambda 语法,但是 JDK 选择的却是 JDK 7,即使 language level 选择了
Project 和 Module 介绍
Project和
Module这两个概念是 IntelliJ IDEA 的必懂知识点之一
在 IntelliJ IDEA 中
Project是最顶级的级别,次级别是
Module。一个
Project可以有多个
Module。目前主流的大型项目结构都是类似这种多
Module结构,这类项目一般是这样划分的,比如:
core Module、
web Module、
plugin Module、
solr Module等等,模块之间彼此可以相互依赖。通过这些
Module的命名也可以看出,他们之间应该都是处于同一个项目业务情况下的模块,彼此之间是有不可分割的业务关系的
一个
Project是由一个或多个
Module组成,模块之间尽量是处在同一个项目业务的的情况下,彼此之间互相依赖关联。这里用的是 尽量,因为 IntelliJ IDEA 的 Project 是一个没有具备任何编码设置、构建等开发功能的,主要起到一个项目定义、范围约束、规范等类型的效果,也许我们可以简单地理解为就是一个单纯的目录,只是这个目录命名上必须有其代表性的意义
以
spring-framework项目为例理解多 Module 的结构
项目主页:https://github.com/spring-projects/spring-framework
该项目的
Project命名是:
spring-framework。该目录主要作用为各个
Module的顶层目录进行约束,告诉协同者,这个目录下都是
spring-framework相关的,我绝不会放 Android 相关源码、文档、文件在上面的。该目录并不是以一个实际性的目录来体现的,所以你访问主页是看不到的,但是当你 checkout 的时候,你必须为这个项目命名,至于命名默认就是
spring-framework
该
Project下有二十来个
Module,各个
Module的命名也是有含义的,比如:
spring-core、
spring-jdbc、
spring-jms、
spring-orm、
spring-web、
spring-webmvc等等,我们通过这些命名也能清楚地知道他们要表达的含义,这些
Module下也都各自有 src 编码目录,可以自行编码和构建
相比较于多
Module项目,小项目就无需搞得这么复杂。只有一个
Module的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单
Module的结构的
SDK介绍
按Ctrl + Shift + Alt + S弹出项目结构设置区,如下
IntelliJ IDEA 支持 6 种 SDK。最常用的就是 JDK 和 Android SDK,其中在创建 Android SDK 的时候如果你没有先配置一个 JDK 的话,IntelliJ IDEA 则会提示你要先配置一个 JDK,然后才能配置 Android SDK,点击上图界面中的
New...按钮后便可以进行新增SDK的操作,如下
由于 IntelliJ IDEA 支持管理多个 JDK,下拉会展示已经创建的所有 SDK,可以很方便地不同 SDK 中切换。所以在开发 Java 项目过程中,完全不用担心系统上不同项目需要不同 JDK的问题,如下
按
Ctrl + Shift + Alt + S弹出项目结构设置区,选择
Platform Settings -> SDKs如下
SDKs为 SDK 的统一管理处,注意不只是针对当前项目
加号
+可以添加新 SDK;减号
-可以删除光标所选的 SDK
language level 介绍
language level:限定项目编译检查时最低要求的 JDK 特性language level应该算是 IntelliJ IDEA 特有的,介绍了一些 Java JDK 在每个新版本里的新特性,而新版本一般也会向下兼容旧版本的特性,IntelliJ IDEA 是对这些 JDK 的新特性是这样介绍的
当我们使用 JDK 8 的时候,我们只能向下兼容 JDK 8 及其以下的特性,所以只能选择 8 及其以下的
language level。所以当我们项目使用的是 JDK 8,但是代码却没有使用 JDK 8 的新特性,最多使用了 JDK 7 的特性的时候我们可以选择
7 - Diamonds,ARM,multi-catch etc.。
假设我们有一个项目代码使用的 JDK 8 新特性:lambda 语法,但是 JDK 选择的却是 JDK 7,即使 language level 选择了
8 - Lambdas,type annotation etc.,也是没有多大意义的,一样会编译报错
Module 下的 SDK 和 language level
对于大型项目,各个Module用到的
SDK和
language level很有可能是各不一样的,IntelliJ IDEA 对此也进行了支持 ,如下
相关文章推荐
- 14.IntelliJ IDEA 项目相关的几个重要概念介绍 - IntelliJ IDEA 使用教程
- IntelliJ IDEA 项目相关的几个重要概念介绍
- IntelliJ IDEA 项目相关的几个重要概念介绍
- IntelliJ IDEA 项目相关的几个重要概念介绍
- IntelliJ IDEA 学习笔记 - 几个窗口布局设置技巧
- IntelliJ IDEA 学习笔记 - 缓存和索引相关
- IntelliJ IDEA 学习笔记 - 设置打开项目时的行为
- cocos2d-x 学习笔记(2)cocos2d-x重要概念,项目结构及 CCDirector 导演控件
- Docker学习笔记(一)docker介绍及相关概念
- 学习笔记 - Intellij IDEA 几个重要概念
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
- 学习笔记之开发相关概念(3)--项目部署和项目发布
- SpringMVC学习笔记--相关概念介绍
- Maven with IntelliJ IDEA 学习笔记
- MVC学习笔记之入门篇(二)mvc3相关介绍以及基础知识篇
- 深入浅出MFC学习笔记:(第一章:win32基本概念,第二章:C++的重要性质)
- 【北大天网搜索引擎TSE学习笔记】第2节——重要数据文件介绍
- Linux学习笔记#1_磁盘以及磁盘分区相关的概念
- Xapian 学习笔记 2 相关概念
- lwip学习笔记之几个重要的数据结构详解