Create New Project:创建一个新的工程。Import Project:导入一个现有的工程。Open:打开一个已有工程。比如:可以打开 Eclipse 项目。Check out from Version Control:可以通过服务器上的项目地址 check out Github 上面项目或其他 Git 托管服务器上的项目。
这里选择 Create New Project,需要明确一下概念:
IntelliJ IDEA 没有类似 Eclipse 的工作空间的概念(Workspaces),最大单元就是Project。 这里可以把 Project 理解为 Eclipse 中的 Workspace。 在 Eclipse 中我们有 workspace(工作空间)和 Project(工程)的概念,在 IDEA 中只有 Project(工程)和 Module(模块)的概念。
这里的对应关系为: IDEA 官网说明: **An Eclipse workspace is similar to a project in IntelliJ IDEA **An Eclipse project maps to a module in IntelliJ IDEA 翻译:Eclipse 中 workspace 相当于 IDEA 中的 ProjectEclipse 中 Project 相当于 IDEA 中的 Module 这个地方刚开始用的时候会很容易理不清它们之间的关系。
从 Eclipse 转过来的人总是下意识地要在同一个窗口管理 n 个项目,这在 IntelliJ IDEA 是无法做到的。IntelliJ IDEA 提供的解决方案是打开多个项目实例,即打开多个项目窗口。即:一个 Project 打开一个 Window 窗口。在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。一个 Project 可以有多个 Module。目前主流的大型项目都是分布式部署的,结构都是类似这种多 Module 结构。
选择指定目录下的 JDK 作为 Project SDK。如果要创建 Web 工程,则需要勾选上面的 Web Application。如果不需要创建 Web工程的话,则不需要勾选。这里先不勾选,我们只是创建简单的 Java 工程。 其中,选择【New…】,选择 jdk 的安装路径所在位置:
点击【OK】以后,选择【Next】
这里不用勾选。选择【Next】,进入下一个页面:
给创建的工程起一个名字和工程所在位置,点击【finish】
点击【OK】即可。
设置显示常见的视图
调出工具条和按钮组
工程界面展示
工程下的 src 类似于 Eclipse 下的 src 目录,用于存放代码。工程下的.idea 和 project01.iml 文件都是 IDEA 工程特有的。类似于 Eclipse 工程下的.settings、.classpath、.project 文件等。
创建 Package 和 Class
接着在 src 目录下创建一个 package:
在包下 New 一个 Java Class:
不管是创建 Class,还是 Interface,还是 Annotation,都是选择 New --> Java Class,然后在 Kind 下拉框中选择创建的结构的类型。接着在类 HelloWorld 里声明主方法,输出 Hello World!,完成测试
说明:在 IDEA 里要说的是,写完代码,不用点击保存。IDEA 会自动保存代码。
创建模块
相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单 Module 的结构的。 下面,我来演示如何创建 Module:
点击【Next】
给模块起名字和保存的位置
之后,我们可以在 Module 的 src 里写代码,此时 Project01 工程下的 src 就没什么 用了。可以删掉。
如何删除模块
选中要删除的模块,点击减号
点击【Yes】后,点击【Ok】
此时再选中要删除的模块会出现有【Delete】选项,会从硬盘上将此 Module 删除掉
查看项目配置
进入项目结构:
进入设置界面
目录结构如下:
设置主题
设置编辑区主题
设置鼠标滚轮修改字体大小
设置自动导包功能
- Add unambiguous imports on the fly:自动导入不明确的结构
- Optimize imports on the fly:自动帮我们优化导入的包
设置显示行号和方法间的分隔符
- 如上图红圈所示,可以勾选 Show line numbers:显示行数。我建议一般这个要勾选上。
- 如上图红圈所示,可以勾选 Show method separators:显示方法分隔线。这种线有助于我们区分开方法,所以建议勾选上。
设置忽略大小写提示
- IntelliJ IDEA 的代码提示和补充功能有一个特性:区分大小写。如上图标注所示,默认就是 First letter only 区分大小写的。
- 区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer,IntelliJ IDEA - 默认是不会帮我们提示或是代码补充的,但是如果我们输入StringBuffer 就可以进行代码提示和补充。
- 如果想不区分大小写的话,取消勾选该选项即可。(2017版本的IEDA中是改为 None 选项)
设置默认的字体、字体大小、字体行间距
修改代码中注释的字体颜色
- Doc Comment –> Text:修改文档注释的字体颜色
- Block comment:修改多行注释的字体颜色
- Line comment:修改当行注释的字体颜色
设置项目文件编码
创建的静态 Java Web(前端开发)
某一个项目右键 -> New -> Module
填写静态web的工程名称和位置:
创建动态 Web 的 Module(后端开发)
某一个项目右键 -> New -> Module
这里一定要勾选 Web Application,才能创建一个 Web 工程。
提供 Web 工程名和位置。 创建以后的工程结构如下:
打开 index.jsp。修改为如下内容。这里你会发现 IDEA 的代码提示功能要强于 Eclipse。
点击 Edit Configurations,对于2017版的IDEA,是再点击“+”按钮,再选择Tomcat Server -> Local, 点击 Edit Configurations,对于2018版的IEDA,是再选择Templates -> Tomcat Server -> Local,编辑好模板后,再点击“+”按钮,再选择Tomcat Server -> Local。 这里我们选择 TomEE Server 或者 Tomcat Server 都可以。
然后配置 Tomcat 的名称以及配置应用服务器的位置。根据自己 Tomcat 的安装位置决定。
其它位置使用默认值(设置要启动的浏览器以及端口号),如下图所示。
接着点击部署【Deployment】-> 点击+ -> 【Artifact】:
选择应用后
再点回【Server】选项卡,此时:
这样我们的模板就配置好了,接下来,我们点击“+”按钮,再选择Tomcat Server -> Local,直接使用我们新建配置好的模板即可,如下图:
点击【OK】后,执行刚才创建的 index.jsp 即可:
效果如下:
注意事项: 显示运行以后的 Tomcat 的信息:
可以点击红圈圈,刚点击后并不能马上关闭tomcat服务器,只是断开了与服务器的连接,稍后当停止按钮显示为灰色,才表示关闭
九.关联数据库
关联方式:
填写数据库相关信息,此时【Test Connection】为灰色状态
填写完成后,点击【Download missing driver files】去中央仓库下载驱动文件,此时【Test Connection】为可点击状态,我们点击它进行数据库连接测试,测试成功如下:
点击【OK】后,查看效果:
补充:如果你选用的数据库是Oracle,过程可仿照上面的步骤,基本一致
常用操作
- 图标 1:同步当前的数据库连接。这个是最重要的操作。配置好连接以后或通过其他工具操作数据库以后,需要及时同步。
- 图标 2:配置当前的连接。
- 图标 3:断开当前的连接。
- 图标 4:显示相应数据库对象的数据。
- 图标 5:编辑修改当前数据库对象。
Maven 的配置
Maven 的核心程序并不包含具体功能,仅负责宏观调度。具体功能由插件来完成。 Maven 核心程序会到本地仓库中查找插件。如果本地仓库中没有就会从远程中央仓库下载。 此时如果不能上网则无法执行 Maven 的具体功能。 为了解决这个问题,我们可以将 Maven 的本地仓库指向一个在联网情况下下载好的目录。
- Maven home directory:可以指定本地 Maven 的安装目录所在,因为我已经配置了 MAVEN_HOME 系统参数,所以直接这样配置 IntelliJ IDEA 是可以找到的。但是假如你没有配置的话,这里可以选择你的 Maven 安装目录。此外,这里不建议使用 IDEA 默认的。
- User settings file / Local repository:我们还可以指定 Maven 的 settings.xml 位置和本地仓库位置。
settings.xml文件修改的地方:
1、本地仓库地址
2、远程仓库地址
settings.xml文件修改的内容如下:
......
D:\learn\Maven\repository-idea
......
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
repo2
rep2 maven
http://repo2.maven.org/maven2/
central
......
复制代码
Maven -> Importing
- Import Maven projects automatically:表示 IntelliJ IDEA 会实时监控项目的 pom.xml 文件,进行项目变动设置,建议勾选。
- Automatically download:在 Maven 导入依赖包的时候是否自动下载源码和文档。默认是没有勾选的,也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果我们需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可。IntelliJ IDEA 支持直接从公网下载源码和文档的。
- VM options for importer:可以设置导入的 VM 参数。一般这个都不需要主动改,除非项目真的导入太慢了我们再增大此参数。
演示使用Maven
创建对应的 Module
选择Spring Boot 的模板 Spring Initializr
举例:此时 Spring Initalizr 是 springboot 工程的模板。
- Group:组织或公司域名,倒序
- Artifact:项目模块名称
- Version:默认 maven 生成版本:0.0.1-SNAPSHOT
这里可以暂时先不选,后面开发需要了再进行设置。
点击【finish】 即可完成创建。
创建完成以后,可以在 IDEA 右边看到创建的 Module。如果没有,可以刷新一下。目录下也会有对应的生命周期。其中常用的是:clean、compile、package、install。比如这里install,如果其他项目需要将这里的模块作为依赖使用,那就可以install。安装到本地仓库的位置。
本地仓库中的文件截图:
生成 javadoc
填写生成javadoc的项目或者模块、输出位置、语言、编码等
Locale:输入语言类型:zh_CNOther command line arguments:-encoding UTF-8 -charset UTF-8 出现错误:未知标记:date 如下图:
取消更新
插件的使用
在 IntelliJ IDEA 的安装讲解中我们其实已经知道,IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的。官网插件库:https://plugins.jetbrains.com/
在IDEA中是打开Settings
需要特别注意的是:在国内的网络下,经常出现显示不了插件列表,或是显示了插件列表,无法下载完成安装。这时候请自行打开 VPN,一般都可以得到解决。 演示安装GsonFormat
如下图演示,在线安装 IntelliJ IDEA 插件库中的插件。安装完以后会提示重启,才可以使用插件。
常用插件推荐
IDEA 中最重要的各种设置项,就是这个 Project Structure(项目结构)了,关乎你的项目运行,缺胳膊少腿都不行。
1、Project
- Project name:定义项目的名称;
- Project SDK:设置该项目使用的JDK,也可以在此处新添加其他版本的JDK;
- Project language level:这个和JDK的类似,区别在于,假如你设置了JDK1.8,却只用到1.6的特性,那么这里可以设置语言等级为1.6,这个是限定项目编译检查时最低要求的JDK特性;
- Project compiler output:项目中的默认编译输出总目录,如图黄色部分,实际上每个模块可以自己设置特殊的输出目录(Modules - (project) - Paths - Use module compile output path),所以这个设置有点鸡肋。
Content Root是一个包含组成模块(Module)的所有文件的文件夹。
一个模块可以有多个 Content Root ,但是在大多数情况下,一个 Content Root 就足够了。(在某些情况下,没有 Content Root 的模块可能是有用的。)
IntelliJ IDEA中的 Content Root 目录显示为或
。
Content Root 目录中的文件夹可以分配到以下类别:
- 源根 (或源文件夹;显示为
)。
通过分配一个文件夹到这个类别,告诉IntelliJ IDEA这个文件夹和它的子文件夹包含应该作为构建过程的一部分被编译的源代码。
在Java模块中,源代码根中的子文件夹代表您的Java包结构。
您可以将包前缀分配给源根(例如
com.mycompany.myapp
),而不是在该源根(例如com/mycompany/myapp
)中创建相应的文件夹结构。有关更多信息,请参阅Java源根的包前缀。在没有包前缀和子文件夹的情况下,源根将代表默认包(未命名的包)。
- 生成的源根 (或生成的源文件夹;显示为
;在某些视图中 使用[生成的 文本标记])与源根目录相似。不同之处在于生成的源根目录在执行时不会被建议为目标文件夹移动类重构 或使用从使用快速修复创建类。
- 测试源根 (或测试源文件夹;如图所示
)。
这些根与源代码相似,但是用于测试的代码(例如单元测试)。测试源文件夹可让您将与测试相关的代码与生产代码分开。
源和测试源的编译结果通常放在不同的文件夹中。
- 生成的测试源根 (或生成的测试源文件夹;显示为
;在某些视图中 使用[生成] 文本标记)与测试源根类似。源根和生成的源根之间的差别是相同的。
- 资源根 (或资源文件夹;显示为
;仅在Java模块中可用)用于应用程序(图像,各种配置XML和属性文件等)中使用的资源文件。
在生成过程中,资源文件夹的所有内容都按原样复制到输出文件夹。
与源代码类似,您可以指定生成资源。您还可以指定应将资源复制到的输出文件夹中的哪个文件夹。
- 测试资源根 (或测试资源文件夹;显示为
;仅在Java模块中可用)用于与测试源关联的资源文件。在所有其他方面,这些文件夹与资源文件夹类似。
- 排除的根 (显示为
)是IntelliJ IDEA“几乎忽略的”。
为排除的文件夹中的文件提供非常有限的编码帮助。包含在排除的文件夹中的类不会出现在代码完成建议列表中,在编辑器中对这些类的引用显示为未解析。搜索时,IntelliJ IDEA不会查找排除的文件夹等。
制作内容不重要的文件夹可以提高IDE的性能。
通常排除的是编译输出文件夹。
一个项目中可以有多个子项目,每个子项目相当于一个模块。一般我们项目只是单独的一个,IntelliJ IDEA 默认也是单子项目的形式,所以只需要配置一个模块。
2.2 、子项目配置每个子项目都对应了Sources、Paths、Dependencies 三大配置选项:
- Sources:显示项目的目录资源,那些是项目部署的时候需要的目录,不同颜色代表不同的类型;
- Paths:可以指定项目的编译输出目录,即项目类和测试类的编译输出地址(替换掉了Project的默认输出地址)
- Dependencies:项目的依赖
2.3 、增删框架(Web部署-1)
每个子项目之下都可以定义它所使用的框架,这里重点说明一下Web部分的设置。
3、 Libraries
这里可以显示所添加的jar包,同时也可以添加jar包,并且可以把多个jar放在一个组里面,类似于jar包整理。
这里默认将每个jar包做为了一个单独的组(未测试,待定)。
4、 Facets官方的解释是:
When you select a framework (a facet) in the element selector pane, the settings for the framework are shown in the right-hand part of the dialog.
(当你在左边选择面板点击某个技术框架,右边将会显示这个框架的一些设置)
说实话,并没有感觉到有什么作用。
5 Artifacts、(Web部署-2)项目的打包部署设置,这个是项目配置里面比较关键的地方,重点说一下。
先理解下它的含义,来看看官方定义的artifacts:
An artifact is an assembly of your project assets that you put together to test, deploy or distribute your software solution or its part. Examples are a collection of compiled Java classes or a Java application packaged in a Java archive, a Web application as a directory structure or a Web application archive, etc.
即编译后的Java类,Web资源等的整合,用以测试、部署等工作。再白话一点,就是说某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。
注:
jar:Java ARchive,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库;
war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;
exploded:在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
默认情况下,IDEA的 Modules 和 Artifacts 的 output目录已经设置好了,不需要更改,打成war包的时候会自动在 WEB-INF目录下生成classes,然后把编译后的文件放进去。
你可能对这里的输出目录不太理解,之前不是配置过了文件编译的输出目录了吗?为什么这里还有一个整合这些资源的目录呢?它又做了哪些事呢?
其实,实际上,当你点击运行tomcat时,默认就开始做以下事情:
- 编译,IDEA在保存/自动保存后不会做编译,不像Eclipse的保存即编译,因此在运行server前会做一次编译。编译后class文件存放在指定的项目编译输出目录下(见1.2.2);
- 根据artifact中的设定对目录结构进行创建;
- 拷贝web资源的根目录下的所有文件到artifact的目录下(见1.2.3);
- 拷贝编译输出目录下的classes目录到artifact下的WEB-INF下(见1.2.2);
- 拷贝lib目录下所需的jar包到artifact下的WEB_INF下;
- 运行server,运行成功后,如有需要,会自动打开浏览器访问指定url。
在这里还要注意的是,配置完成的artifact,需要在tomcat中进行添加: