IntelliJ IDEA上手这一篇就够了,从入门到上瘾

前言

每次换电脑,最最最头疼的事情莫过于安装各种软件和搭建开发环境。这算是不想换电脑的一个原因吧(最主要还是穷)。除非是电脑坏了开不了机或者点一下卡一下,真不想换电脑。每次换电脑都得折腾好久。

image

趁着这次换电脑了,顺便整理下IDEA安装使用及配置。

官网提供的详细使用文档,英文好的可以直接上手了

https://www.jetbrains.com/help/idea/getting-started.html

IntelliJ IDEA简介

IDEA,全称IntelliJ IDEA,是 Java 语言的集成开发环境, IDEA 在业界被公认为是最好的 java 开发工具之一,一旦用上了就会上瘾。尤其在智能代码助手、代码自动提示、重构、 J2EE
支持、 Ant、 JUnit、 CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

IDEA在官网是这样解释自己的
Excel at enterprise, mobile and web development with Java, Scala and Groovy,
with all the latest modern technologies and frameworks available out of the
box.
简明翻译: IntelliJ IDEA 主要用于支持 Java、 Scala、 Groovy 等语言的开发工
具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应
用的开发

IntelliJ IDEA 相比于Eclipse的优势

  • 强大的整合能力。比如: Git、 Maven、 Spring 等
  • 提示功能的快速、 便捷
  • 提示功能的范围广
  • 好用的快捷键和代码模板
  • 精准搜索

IntelliJ IDEA 下载安装

  1. 下载地址

https://www.jetbrains.com/idea/download/#section=windows

DEA 分为两个版本: 旗舰版(Ultimate)和社区版(Community)。
旗舰版:收费(限 30 天免费试用),功能全面,插件丰富,但是收费,按年收费;
社区版:免费试用,功能相对而言不是很丰富,但是不影响开发使用。

image
  1. 软硬件要求(官方要求)

以现目前最新版为例(现在最新版是idea-2021.3.2)

  • 操作系统: 64-bit versions of Microsoft Windows 10, 8
  • 内存:2 GB RAM minimum, 8 GB RAM recommended
  • 硬盘:2.5 GB hard disk space, SSD recommended
  • 屏幕:1024x768 minimum screen resolution
  • JRE:JRE 1.8 is bundled with the IntelliJ IDEA distribution. You do not need to install Java
    on your computer to run IntelliJ IDEA.
  • JDK A standalone JDK is required for Java development

个人建议配置: 内存 8G 或以上, CPU 最好 i5 以上, 最好安装块固态硬盘(SSD),将 IDEA
安装在固态硬盘上,这样流畅度会加快很多

  1. 安装过程

双击下载好的exe文件进行无脑安装即可

image

image

image

  1. 激活
    淘宝,你懂的。

目录结构介绍

  1. 安装目录介绍
image

bin:容器,执行文件和启动参数等


image

idea64.exe.vmoptions 是比较重要的配置文件,这里以我个人电脑为例(win10 64位 16G内存)

-Xms512m   # 设置初始的内存数,增加该值可以提高 Java 程序的启动速度
-Xmx1500m  #设置最大内存数,提高该值,可以减少内存 Garage 收集的频率,提高程序性能
-XX:ReservedCodeCacheSize=512m  #保留代码占用的内存容量
-XX:+IgnoreUnrecognizedVMOptions
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
  • help:快捷键文档和其他帮助文档
  • jbr: 咱们在介绍intellij idea安装之前的准备时就给大家说过硬件和软件上的一个要求,如果你只是想运行java程序,那么你就用不着再去装jre了,因为intellij idea已经绑定好了。在jbr目录中,大家就能够看到它已经提供好了java的运行环境,当然,如果你要是想开发java程序的话,那么就得需要独立安装jdk了
  • lib: idea 依赖的类库
  • license:各个插件许可
  • plugin:插件
  1. 设置目录介绍

路径
C:\Users\用户.IntelliJIdea2019.3


image

这是 IDEA 的各种配置的保存目录。 这个设置目录有一个特性,就是你删除掉整
个目录之后,重新启动 IntelliJ IDEA 会再自动帮你生成一个全新的默认配置,
所以很多时候如果你把 IntelliJ IDEA 配置改坏了,删掉该目录,一切都会还原到默认值

① config 目录

此目录为IDEA最重要的目录。目录主要记录了: IDE 主要配置功能、自定义的代码模板、自定义的文件
模板、自定义的快捷键、 Project 的 tasks 记录等等个性化的设置

② system目录

system 目录是 IntelliJ IDEA 系统文件目录,是 IntelliJ IDEA 与开发项目一个
桥梁目录, 里面主要有:缓存、索引、容器文件输出等等

创建Java工程,实现Hell World

  1. 创建工程


    image
  • 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。

  1. 选择jdk版本,框架


    image
  2. 选择模板


    image
  3. 设置项目路径及项目名称


    image
  4. 项目界面


    image
  • 工程下的 src 类似于 Eclipse 下的 src 目录, 用于存放代码
  • 工程下的.idea 和 project01.iml 文件都是 IDEA 工程特有的。类似于 Eclipse 工
    程下的.settings、 .classpath、 .project 等
  1. 创建package和class

在src目录下创建一个package


image

image

在刚建的package下新建class


image

image

在HelloWorld类里声明主方法,控制台打印Hello World! 到此成功完成

image

模块(Module)简介

在 Eclipse 中我们有 Workspace(工作空间)和 Project(工程)的概念,在 IDEA
中只有 Project(工程)和 Module(模块)的概念
① Eclipse 中 workspace 相当于 IDEA 中的 Project
②Eclipse 中 Project 相当于 IDEA 中的 Module

eclipse在同一窗口可以管理 n 个项目,这在IntelliJ IDEA 是无法做到的。
IntelliJ IDEA 提供的解决方案是打开多个项目实例,
即打开多个项目窗口。 即: 一个 Project 打开一个 Window 窗口

在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。 一个 ProjectIntelliJ IDEA 的安装、 配置与使用可以有多个 Module。目前主流的大型项目都是分布式部署的, 结构都是类似这种多 Module 结构

image

下图为若依项目模块截图,根据model命名可以看出,他们之间处于同一项目下,彼此之间有着不可分割的业务关系


image

相比多个Module项目,小项目就没这么复杂,IntelliJ IDEA创建项目的时候默认的就是单Module结构的.

  1. IntelliJ IDEA 中一个项目是以Module为单位的,那么,下面我们就来看看建立和删除Module

① 怎么建立Module?

image
image
image

之后,我们可以在 Module 的 src 里写代码,此时 Project 工程下的 src 就没什么用了。可以删掉。

② 如何删除一个Module呢?

  • remove Module


    image
  • delete Module


    image

直到第二步完成,Module将彻底从磁盘上删除

查看项目配置

image
image

IDEA 常用配置

file-->Settings 进入设置界面

image
  1. Appearance & Behavior

① 设置主题

默认有如下三种主题,根据自己喜好设置即可


image

② 设置窗体及菜单的字体及大小

image
  1. Editor - General

① 设置鼠标滚轮修改字体大小


image

② 设置鼠标悬浮提示

image

③ 设置自动导包

image
  • Add unambiguous imports on the fly:自动导入不明确的结构
  • Optimize imports on the fly: 自动帮我们优化导入的包

④ 设置显示行号和方法间的分隔符

image
  • 如上图红圈所示, 可以勾选 Show line numbers:显示行数。 建议勾上,好定位代码
  • 如上图红圈所示, 可以勾选 Show method separators: 显示方法分隔线。建议勾上,单一个方法代码比较多时,好区分一个方法到哪结束

⑤ 忽略大小写提示


image
  • IntelliJ IDEA 的代码提示和补充功能默认是区分大小写的。我们输入stringb是没有提示的


    image
  • 按照上图,我们把Match case 前的勾去掉后代码提示就不区分大小写了。输入stringb后就会有提示


    image

⑥ 设置取消单行显示 tabs 的操作

image

在打开很多文件的时候, IntelliJ IDEA 默认是把所有打开的文件名 Tab 单行显示的。如果需要多行显示文件,超出部分不折叠,则按照上图设置即可

  1. Editor – Font

① 设置默认的字体、字体大小、字体行间距

image
  1. Editor – Color Scheme

① 修改代码中注释的字体颜色

image
  • Doc Comment – Text: 修改文档注释的字体颜色
  • Block comment: 修改多行注释的字体颜色
  • Line comment: 修改当行注释的字体颜色
  1. Editor – File and Code Templates

① 修改类头的文档注释信息

image
/**
@author xiezhr
@create ${YEAR}-${MONTH}-${DAY} ${TIME}
*/
  1. Editor – File Encodings

① 设置项目文件编码格式

image
  1. Build,Execution,Deployment

① 设置自动编译

image
  • Intellij Idea 默认状态为不自动编译状态, Eclipse 默认为自动编译。若你是刚才eclipse转过来的,这里需要设置下。
  1. 设置代码水平或垂直显示
image

快捷键设置

  1. 相信不少小伙伴是刚才eclipse转过来的,习惯了eclipse的快捷键,没问题Intellij Idea中支持将快捷键设置成eclipse快捷键。
image
  1. 导入快捷键设置
image

image
  1. 常用快捷键(标⭐的为常用)

① 编辑类

快捷键 快捷键说明
Ctrl + Space 补全代码,由于经常与操作系统的输入法的切换冲突,所以实际很少用。一般直接在 idea 中开启输入自动补全机制
Ctrl + Shift + Space 在列出的可选项中只显示出你所输入的关键字最相关的信息。⭐
Ctrl + Shift + Enter 代码补全后,自动在代码末尾添加分号结束符
Ctrl + P 在某个方法中,调用该按键后,会展示出这个方法的调用参数列表信息
Ctrl + Q 展示某个类或者方法的 API 说明文档
Ctrl + mouse 跳进到某个类或者方法源代码中进行查看⭐
Alt + Insert 自动生成某个类的 Getters, Setters, Constructors, hashCode/equals, toString 等代码 ⭐
Ctrl + O 展示该类中所有覆盖或者实现的方法列表
Ctrl + Alt + T 自动生成具有环绕性质的代码,比如:if..else,try..catch, for, synchronized 等等,使用前要先选择好需要环绕的代码块⭐
Ctrl + / 对单行代码,添加或删除注释。分为两种情况:如果只是光标停留在某行,那么连续使用该快捷键,会不断注释掉下一行的代码;如果选定了某行代码(选定了某行代码一部分也算这种情况),那么连续使用该快捷键,会在添加或删除该行注释之间来回切换⭐
Ctrl + Shift + / 对代码块,添加或删除注释。它与 Ctrl + / 的区别是,它只会在代码块的开头与结尾添加注释符号⭐
Ctrl + W 选中当前光标所在的代码块,多次触发,代码块会逐级变大⭐
Ctrl + Shift + W 是 Ctrl + W 的反向操作,多次触发,代码块会逐级变小,最小变为光标
Alt + Q 展示包含当前光标所在代码的父节点信息,比如在 java 方法中调用,就会展示方法签名信息
Alt + Enter 展示当前当前光标所在代码,可以变化的扩展操作
Ctrl + Alt + L 格式化代码⭐
Ctrl + Alt + O 去除没有实际用到的包,这在 java 类中特别有用⭐
Ctrl + Alt + I 按照缩进的设定,自动缩进所选择的代码段
Tab / Shift + Tab 缩进或者不缩进一次所选择的代码段⭐
Ctrl + X 或 Shift Delete 剪切当前代码⭐
Ctrl + C 或 Ctrl + Insert 拷贝当前代码⭐
Ctrl + V 或 Shift + Insert 粘贴之前剪切或拷贝的代码⭐
Ctrl + Shift + V 从之前的剪切或拷贝的代码历史记录中,选择现在需要粘贴的内容⭐
Ctrl + D 复制当前选中的代码⭐
Ctrl + Y 删除当前光标所在的代码行⭐
Ctrl + Shift + J 把下一行的代码接续到当前的代码行
Ctrl + Enter 当前代码行与下一行代码之间插入一个空行,原来所在的光标不变⭐
Shift + Enter 当前代码行与下一行代码之间插入一个空行,原来光标现在处于新加的空行上⭐
Ctrl + Shift + U 所选择的内容进行大小写转换⭐
Ctrl + Shift + ]/[ 从当前光标所在位置开始,一直选择到当前光标所在代码段起始或者结束位置
Ctrl + Delete 删除从当前光标所在位置开始,直到这个单词的结尾的内容
Ctrl + NumPad(+/-) 展开或收缩代码段⭐
Ctrl + Shift + NumPad(+) 展开所有代码段
Ctrl + Shift + NumPad(-) 收缩所有代码段
Ctrl + F4 关闭当前标签页
Shift + F6 修改名字⭐

② 查找替换

快捷键 快捷键说明
Ctrl + F 在当前标签页中进行查找,还支持正则表达式⭐
F3 如果找到了多个查找结果,每调用一次就会跳到下一个结果,很方便哦
Shift + F3 是 F3 的反向操作,即每调用一次就会跳到上一个结果
Ctrl + R 在当前标签页中进行替换操作⭐
Ctrl + Shift + F 通过路径查找⭐
Ctrl + Shift + R 通过路径替换⭐
image
图示 说明
向上箭头 就是 快捷键【Shift + F3】,每调用一次就会跳到上一个结果
向下箭头 就是 快捷键【F3】,每调用一次就会跳到下一个结果
加号符号 把当前的高亮项加入到选中的列表中
减号符号 把当前的高亮项从选中的列表中移除
勾选符号 把所有的查找结果同时选中,这很适合批量操作
文本内的向上箭头 打开查询结果列表面板
两个框加一个向下箭头 更多选项
Match Case 是否大小写敏感
Regex 正则表达式
Words 匹配单词
x matches x 表示的是找到的记录数

④ 查看使用情况

快捷键 快捷键说明
Alt + F7 在当前项目中的使用情况,会打开一个使用情况面板
Ctrl + F7 在当前文件中的使用情况,找的内容会低亮显示
Ctrl + Shift + F7 在当前文件中的使用情况,找的内容会高亮显示
Ctrl + Alt + F7 打开使用情况列表⭐

④ 编译运行

快捷键 快捷键说明
Ctrl + F9 编译项目(如果之前有编译过,那么只会编译那些修改的类或者依赖的包⭐
Ctrl + Shift + F9 编译选中的范围(如果在某个类中,那么只会编译当前类)
Alt + Shift + F10 会打开一个已经配置的运行列表,让你选择一个后,再运行
Alt + Shift + F9 会打开一个已经配置的运行列表,让你选择一个后,再以调试模式运行
Shift + F10 立即运行当前配置的运行实例,这个在单元测试中特别好用⭐
Shift + F9 立即以编译模式运行当前配置的运行实例⭐
Ctrl + Shift + F10 按照编辑器绑定的文件类型,运行相关的程序。比如一个 html 页面,调用后,会直接打开一个浏览器

⑤ 调试

快捷键 快捷键说明
F8 跳到当前代码下一行⭐
F7 跳入到调用的方法内部代码⭐
Shift + F7 会打开一个面板,让你选择具体要跳入的类方法,这个在复杂的嵌套代码中特别有用
Shift + F8 跳出当前的类,到上一级⭐
Alt + F9 让代码运行到当前光标所在处,非常棒的功能⭐
Alt + F8 打开一个表达式面板,然后进行进一步的计算
F9 结束当前断点的本轮调试(因为有可能代码会被调用多次,所以调用后只会结束当前的这一次);如果有下一个断点会跳到下一个断点中⭐
Ctrl + F8 在当前光标处,添加或者删除断点
Ctrl + Shift + F8 打开当前断点的面板,可以进行条件过滤哦

⑥ 导航

快捷键 快捷键说明
Ctrl + N 打开类查询框⭐
Ctrl + Shift + N 打开文件查询框⭐
Ctrl + Alt + Shift + N 打开文本查询框
Alt + 右箭头/左箭头 跳到下一个/上一个编辑器标签
F12 如果当前在编辑窗口,触发后,会跳到之前操作过的工具栏上
ESC 从工具栏上,再跳回原来的编辑窗口,一般与 F12 配合使用
Shift + ESC 隐藏最后一个处于活跃状态的工具窗口
Ctrl + Shift + F4 同时关闭处于活动状态的某些工具栏窗口
Ctrl + G 跳转至某一行代码⭐
Ctrl + E 打开曾经操作过的文件历史列表
Ctrl + Alt + 右箭头/左箭头 在曾经浏览过的代码行中来回跳
Ctrl + Shift + Backspace 跳转到最近的编辑位置(如果曾经编辑过代码)
Alt + F1 打开一个类型列表,选择后会导航到当前文件或者内容的具体与类型相关的面板中
Ctrl + B 或 Ctrl + 鼠标左键 如果是类,那么会跳转到当前光标所在的类定义或者接口;如果是变量,会打开一个变量被引用的列表⭐
Ctrl + Alt + B 跳转到实现类,而不是接口⭐
Ctrl + Shift + I 打开一个面板,里面包含类代码
Ctrl + Shift + B 打开变量的类型所对应的类代码,只对变量有用
Ctrl + U 打开方法的超类方法或者类的超类,只对有超类的方法或者类有效
Alt + 上/下箭头 在某个类中,跳到上一个/下一个方法的签名上
Ctrl + ]/[ 移动光标到类定义的终止右大括号或者起始左大括号
Ctrl + F12 打开类的结构列表⭐
Ctrl + H 打开类的继承关系列表
Ctrl + Shift + H 打开某个类方法的继承关系列表
Ctrl + Alt + H 打开所有类的方法列表,这些方法都调用了当前光标所处的某个类方法⭐
F2/Shift + F2 在编译错误的代码行中来回跳
F4 打开当前光标所在处的方法或类源码
Alt + Home 激活包路径的导航栏
F11 把光标所处的代码行添加为书签或者从书签中删除⭐
Ctrl + F11 把光标所处的代码行添加为带快捷键的书签或者从快捷键书签中删除。
Shift + F11 打开书签列表⭐

Ctrl + N (打开类查询框)

键入类名的关键字,会自动出现相关的类,很强大


image

Alt + F1(打开一个类型列表)

image

模板设置

模板包含Live Templates 和 Postfix Completion
二者的区别: Live Templates 可以自定义,而 Postfix Completion 不可以

  1. Live Templates(实时代码模板)
image

配置一些常用代码字母缩写,在输入简写时可以出现你预定义的固定模式的代码,使得开发效率大大提高.

Java 中输入 sout 会出现 System.out.println();

  1. 已有的常用模板
image

举例
① psvm

psvm 可生成 main 方法

② sout

sout 可生成 System.out.println()

③ fori
fori:可生成 for 循环
iter:可生成增强 for 循环
itar:可生成普通 for 循环

④ list.for
list.for 可生成集合 list 的 for 循环
List<String> list = new ArrayList<String>();
输入: list.for 即可输出
for(String s:list){
}

⑤ ifn
ifn 可生成 if(xxx = null)
inn:可生成 if(xxx != null)
xxx.nn 或 xxx.null

⑥ prsf
prsf 可生成 private static final
psf 可生成 public static final
psfi 可生成 public static final int
psfs 可生成 public static final String

  1. 如果对已有的模板不习惯,可以修改
image
  1. 如果对已有的模板不习惯,也可以定义自己的模板,步骤如下

① 定义一个模板的组

image
image

② 在上一步定义的模板组下定义一个模板

image
image

③ 选择应用范围

image

关联数据库

  1. 关联数据库
image
image
image

IntelliJ IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等

  1. 常用操作
image
  • 图标 1:同步当前的数据库连接。这个是最重要的操作。配置好连接以后或通过其他工具操作数据库以后,需要及时同步。
  • 图标 2:配置当前的连接。
  • 图标 3:断开当前的连接。
  • 图标 4:显示相应数据库对象的数据
  • 图标 5:编辑修改当前数据库对象

版本控制

不管是个人开发还是团队开发,都离不开版本控制,IntelliJ IDEA也集成了版本控制工具。

image

注:IntelliJ IDEA 虽然默认对这些版本控制工具提供插件支持,但是还需要我们自己安装版本控制客户端滴

  1. Git是我们常用的版本控制工具,是目前世界上最先进的分布式版本控制系统(没有之一)。
    我们这里就以Git为例,说一说IntelliJ IDEA怎么配置和使用Git

① 下载和安装Git客户端

官网下载地址:https://git-scm.com/downloads

全部无脑下一步安装即可

默认安装完成后,右键出现下图所示图标即表示安装成功

image

安装完成后,还需要最后一步设置,在命令行输入:

# 注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址

② 关联 git.exe

image

③ 关联 GitHub 上的账户,并测试连接

image

④ 在 GitHub 上创建账户下的一个新的仓库作为测试

image

⑤ 从当前github 账号上checkout项目

image

获取GitHub上项目路径,并将项目路径填入其中


image
image
image
image

按照以上步骤,在GitHub上的项目即克隆到了本地。是不是很简单哦

⑥ Git常用操作

image
clone:拷贝远程仓库
commit:本地提交
push:远程提交
pull:更新到本地

上面只提了最最最常用的命令,如果你想更加深入的了解git,建议参考

廖雪峰的Git教程

注:即使我们没有使用任何版本控制工具,IntelliJ IDEA也为我们提供了历史版本查看功能

image
image

断点调试功能

  1. debug 模式设置

设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少

image
  1. 常用断点调试说明
图标 显示 说明
image
step over 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
image
step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
image
force step into 进入下一步,如果当前行断点是一个方法,则进入当前方法体内
image
step out 跳出
image
resume program 恢复程序运行,但如果该断点下面代码还有断点则停在下一个断点上
image
stop 停止
image
view breakpoints 查看所有断点
  1. 条件断点

在实际项目中,我们会遇到这样一种场景。我们已经定位问题(bug)就出在这个循环里,但是确定不了循环到第几次的时候报错,
当循环次数比较少,是3次或5次的时候,我们可以一次一次的调试。但当循环次数是100次,甚至1000次呢?这个时候我们就需要用到条件断点了。

在循环里增加条件判断,能大大提高我们的效率

我们在需要设置断点的语句前单击,当出现红色断点时,右键出现如下图所示,即可加入条件。

image

debug程序,程序在i=10的时候停止

image
image

配置maven

  1. Java项目构成

在介绍maven 前,我们先了解下一个Java项目需要哪些东西。

  • 如果我们需要log4j,就需要吧log4j相关的jar包放到classpath中,如果我们需要fastjson,就需要把fastjson相关的jar包放到classpath中。这就是依赖包的管理
  • 我们要确定项目的目录结构。例如,src目录存放Java源码,resources目录存放配置文件,bin目录存放编译生成的.class文件
  • 我们还需要配置环境,例如JDK的版本,编译打包的流程
  • 需要对代码进行编译,才能够让项目在一个独立的服务器上编译、测试、部署
  1. maven 简介

这些工作难度不大,但是非常琐碎且耗时。如果每一个项目都自己搞一套配置,肯定是费时费力。我们需要的是一个标准化的Java项目管理和构建工具

Maven就是是专门为Java项目打造的管理和构建工具,Maven有以下功能

  • 提供了一套标准化的项目结构
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……)
  • 提供了一套依赖管理机制
  1. Maven 项目结构
image
  1. Maven构建流程
image
  1. IntelliJ IDEA 配置Maven
image
  1. 新建Maven项目

① 新建项目

image

②选择Maven项目

image

③设置项目参数

image

④配置本地Maven设置

image

⑤初始化项目

image

⑥项目构建完成

image
  1. 添加第三方jar包

mysql 是我们日常开发中常用的数据库,这里我们以导入MySQL驱动包为例

①当我们执行App.java中代码时,由于没加mysql驱动包,所以会报如下错误

image

②修改pom.xml文件,添加如下内容

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.20</version>
</dependency>
image

注:dependency标签中的内容我们不用死记,我们只需要到https://mvnrepository.com/查询,然后复制即可

image
image

③ 等待驱动下载完成

image

④ 再次运行,成功

image

创建web项目并配置tomcat

  1. 新建maven web项目

① 创建项目

image

②选择Maven webapp格式

image

③填写项目参数

image

④ 配置本地Maven相关参数

image

⑤配置java源代码目录

maven web项目默认是没有java源代码目录的,所以需要手动创建,并设置其为源代码目录
右键main目录-> New->Directory->输入java->右键java->Mark Directory as-> Sources Root
这样就创建了存放java源文件的目录了


image

⑥ 新建servlet

image

image
package com.xiezhr;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

@WebServlet(name = "HelloServlet")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.getWriter().println("<h1>Hello Servlet! Hello xiezhr!</h1>");
        response.getWriter().println(new Date().toLocaleString());
    }
}

⑦修改web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.xiezhr.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

⑧pom.xml添加servlet包依赖

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
</dependency>
  1. 配置tomcat

① 打开tomcat配置,并选择tomcat 路径

image

② 设置部署

image
image

③ 运行项目

image
image

④ 测试成功

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容