IDEA与Maven基础课堂笔记

第一部分:IDEA版本选择与安装

1.1 版本选择

老师强调 :IDEA常用版本涵盖2016至2026约十个大版本,低版本即可满足企业开发需求(Spring Boot、微服务等项目高低版本无区别)。

版本 建议
2017版 推荐,稳定,无AI提示干扰
2023-2026版 有提示词工程提速,但初学者用低版本更利于理解逻辑
社区版/企业版 学习阶段用不了正版企业版,进公司后有账号

老师强调 :建议用低版本 ,避免高版本依赖过强导致独立写代码能力退化。电脑可安装多个IDEA版本。尽量使用英文版编辑器,避免汉化工具翻译不准。

1.2 安装步骤

老师强调 :IDEA安装位置要放D盘根目录 ,并新建文件夹命名(如idea2017),避免直接装到D盘根目录导致文件散乱。

  1. 双击运行安装程序,选择D盘新建的文件夹
  2. 系统选64位
  3. 文件关联勾选.java、.kt等,默认全支持
  4. 等待进度条走完,不要点其他东西,否则易安装不全

1.3 破解步骤

老师强调:有安装包就双击执行,否则进bin目录运行;协议选第二个"同意"。正规公司用账号密码,破解场景选第一项再选第二项。

  1. 从破解文档复制绿色部分密钥粘贴,首次会提示失败(正常)
  2. 进安装目录(如D盘idea2017)
  3. 把破解包移到bin目录
  4. 修改两个vm配置文件(idea64.exe.vmoptions和idea.exe.vmoptions),去掉空行,修改前半段路径为实际安装目录
  5. 重开IDEA,选第二个文件再粘贴一遍密钥

1.4 关闭自动更新(重要)

老师强调:不关闭自动更新,破解会失效,需卸载重装。

路径 :Configure → Settings → Appearance & Behavior → System Settings → Updates,取消勾选Automatically check updates for。

1.5 卸载软件的三个维度

老师强调:仅删图标只是删了快捷方式,并非卸载软件。

维度 说明
安装目录 删除软件本体
服务列表 删除对应服务(无则忽略)
过程文件 使用中产生的文件(如聊天记录)

老师强调:仅控制面板或第三方管家卸载常有残留,三者齐了才真搬走。

第二部分:IDEA配置与快捷键

2.1 JDK配置

老师强调 :进入Config → Project Defaults → Project Structure,在No SDK处配置JDK环境。

  • JDK 1.8默认装在C:\Program Files (x86)\Java下
  • 选bin目录的前一层目录 (如jdk1.8.0_262),别选到bin里面
  • 语言级别选8

2.2 常用设置

设置项 路径 说明
编码 Editor → File Encodings 设为UTF-8
字体 Editor → Font 字体类型、大小
代码提示 Editor → General → Code Completion Case sensitive completion设为none
自动导包 Editor → General → AutoImport 拷贝类时默认导入包
序列化ID Editor → Inspections 勾选Serializable class without 'serialVersionUID'
隐藏文件 Editor → File Types 添加*.idea;*.iml;

2.3 常用快捷键

快捷键 功能
psvm 生成main方法
sout 生成输出语句
fori 生成普通for循环
集合.for 生成增强for循环
Ctrl+Alt+T 生成流程控制语句
Alt+Insert 生成构造方法、get/set、toString等
Ctrl+B 进入方法/变量的定义处
Ctrl+D 复制光标所在行
Ctrl+F 当前文件文本查找
Ctrl+H 查看类继承结构
Ctrl+N 通过类名定位文件
Ctrl+O 快速重写父类方法
Ctrl+X 剪切选中行
Ctrl+Y 删除光标所在行
Ctrl+Z 撤销
Ctrl+F12 弹出当前文件结构层
Ctrl+/ 注释光标所在行
Ctrl+Shift+/ 多行注释
Alt+Enter 快速修复选择
Ctrl+Alt+L 格式化代码
Ctrl+Alt+O 优化导入的类和包
Ctrl+Alt+V 快速引进变量
Ctrl+Shift+U 大小写轮流转换
Ctrl+Shift++/ 代码块注释

2.4 Debug调试

老师强调:Debug是未来工作必用技能,务必实操。

步骤:

  1. 在指定位置加断点(鼠标左键点击)
  2. 使用Debug方式运行main主函数
  3. 掌握快捷键:单步执行、让程序走下去、进入方法内、返回上一级调用

第三部分:IDEA创建项目类型

3.1 五种Java项目类型

老师强调 :按项目管理方式划分,而非框架技术。

项目类型 有页面 部署 依赖管理
普通Java ❌ ❌ 手动导包
普通Java Web ✅ Tomcat 手动导包
Maven Java ❌ ❌ Maven坐标
Maven Java Web ✅ Tomcat Maven坐标
Spring Boot ✅ 内嵌Tomcat Maven坐标

老师强调:

  • 普通Java/普通Java Web打jar包
  • 普通Java Web/Maven Java Web打war包
  • Spring Boot打jar包(内嵌Tomcat,无需外部容器)

3.2 Spring Boot五种创建方式

  1. IDEA和Spring.io官网整合创建
  2. IDEA和阿里云官网整合创建
  3. 直接从Spring官网创建
  4. 直接从阿里云官网创建
  5. 通过Maven项目改造(推荐)

老师强调:考虑因素包括Maven版本和IDEA版本适配、本地库健全、镜像源配置、网络配置、IDEA和Maven整合。

第四部分:Maven核心概念

4.1 什么是Maven

老师强调 :Maven翻译为"专家/内行",是跨平台的项目管理工具 ,主要服务Java项目,负责依赖管理 和项目信息管理。

理想的项目构建:高度自动化、跨平台、可重用组件、标准化流程。

为什么用Maven:

  • 拥有约定,知道代码在哪里
  • 拥有生命周期,一条命令完成构建
  • 只需要一个pom.xml
  • 拥有依赖管理和仓库管理

4.2 依赖管理

老师强调 :依赖指开发时模块间相互需要,如A依赖B、B依赖C、C依赖D,这叫传递依赖。

传递依赖管理:

  • 大项目中多层版本嵌套(A→B2.0→C3.0→D3.0)
  • 自己下包控版本很麻烦
  • Maven只需声明依赖A,自动解析后续链条并下载

4.3 项目构建

老师强调:项目构建是从编写源代码到编译、测试、运行、打包、部署的过程。

构建流程:

复制代码
清理 → 编译 → 测试 → 报告 → 打包 → 部署

第五部分:Maven安装与配置

5.1 安装步骤

  1. 安装JDK 1.8或以上版本
  2. 下载Maven(地址:http:内部工具.html)
  3. 解压到相应目录(无中文路径)

5.2 安装目录分析

目录 说明
bin 含有mvn运行的脚本
boot 含有类加载器框架
conf 含有settings.xml配置文件
lib 含有Maven运行时所需的java类库

5.3 环境变量配置

变量 值 说明
MAVEN_HOME Maven解压路径 如C:\software\maven\apache-maven-3.6.0
MAVEN_OPTS -Xms128m -Xmx512m 防内存溢出
Path %MAVEN_HOME%\bin 添加bin目录

老师强调 :先配XXX_HOME变量,再配HOME/bin到Path。改路径只动前半段,后半段/bin不变。验证:敲mvn -v有版本输出即OK。

5.4 仓库配置

本地仓库(可修改):

  • 默认~/.m2/repository/
  • 每个用户只有一个

远程仓库:

  • 中央仓库:Maven默认的远程仓库
  • 私服:架设在局域网内的仓库

修改本地仓库 :编辑conf/settings.xml,找到localRepository位置,改为自设目录。

5.5 依赖搜索顺序

复制代码
查找依赖
    │
    ▼
本地库是否存在?──是──→ 使用本地库
    │
    否
    ▼
中央仓库是否存在?──是──→ 下载到本地库
    │
    否
    ▼
远程仓库是否存在?──是──→ 下载到本地库
    │
    否
    ▼
报错

第六部分:IDEA整合Maven

6.1 全局配置

老师强调:没启动任何项目时选Settings,表示全局设置,Maven也一样。

路径 :Settings → Build, Execution, Deployment → Build Tools → Maven

配置项 说明
Maven home directory 指定Maven解压目录
User settings file 指定settings.xml文件
Local repository 本地仓库位置

老师强调:以上设置完成表示在本IDEA上,所有项目如未单独配置,默认均使用该Maven版本和本地库。

6.2 创建Maven项目

Maven Java项目:新建项目选Maven,不勾选模板,填GroupId、ArtifactId、Version。

Maven Java Web项目 :勾选maven-archetype-webapp模板。

老师强调 :若创建Web项目速度慢,在Maven → Runner的VM Options加-DarchetypeCatalog=local,指定从本地加载配置。

6.3 项目结构

复制代码
项目名/
├── src/
│   ├── main/
│   │   ├── java/          ← Java代码
│   │   └── resources/     ← 资源文件
│   └── test/
│       ├── java/          ← 测试代码
│       └── resources/     ← 测试资源
├── target/                ← 输出位置
└── pom.xml                ← Maven核心配置

6.4 Maven项目视图

老师强调:Maven项目视图用于查看项目属性,可进行打包、清理、测试等操作。

  • Lifecycle:生命周期阶段
  • Plugins:Maven插件
  • Dependencies:Maven依赖

第七部分:pom.xml核心配置

7.1 坐标

老师强调 :坐标是构件的唯一标识,包括groupId、artifactId、version、packaging、classifier。

元素 说明 是否必须
groupId 组织标识(公司网址反写+项目名) ✅
artifactId 项目名称(项目名-模块名) ✅
version 版本号 ✅
packaging 打包方式(jar/war/pom) 可选(默认jar)
classifier 附属构件 可选
复制代码
<groupId>cn.tx.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

7.2 依赖

复制代码
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
    </dependency>
</dependencies>

7.3 第三方依赖查找

老师强调 :不确定坐标时,通过中央仓库查找:https://mvnrepository.com/

第八部分:依赖范围(scope)

老师强调 :Maven项目在开发工程中有三套classpath:

  • 主代码:main下的代码在编译时的依赖
  • 测试代码:test下的代码编译时的依赖
  • 运行时:main代码运行时对包的依赖

共6种scope:compile、provided、runtime、test、system、import。

依赖范围 主代码 测试代码 打包运行 例子
compile ✅ ✅ ✅ log4j
test ❌ ✅ ❌ junit
provided ✅ ✅ ❌ servlet-api
runtime ❌ ✅ ✅ JDBC驱动

老师强调:

  • compile:默认使用,编译、测试、运行classpath都有效
  • test:只对测试classpath有效,典型如junit
  • provided:编译与测试有效,运行时由web容器提供,打war包时不打进去
  • runtime:运行时classpath有效,典型如JDBC(编写时是接口规范,运行时才需要具体实现类)

第九部分:依赖传递与可选依赖

9.1 依赖传递

老师强调:

  • 第一直接依赖:HelloFriend项目依赖Hello项目
  • 第二直接依赖:MakeFriend项目依赖HelloFriend项目
  • MakeFriend项目只依赖HelloFriend,但也把Hello依赖进来

9.2 依赖范围对传递的影响

第一直接依赖\第二直接依赖 compile test provided runtime
compile compile -- -- runtime
test test -- -- test
provided provided -- provided provided
runtime runtime -- -- runtime

9.3 依赖阻断

老师强调 :在依赖处添加<optional>true</optional>配置,项目就不会再引入该依赖。

9.4 可选依赖(exclusion)

复制代码
<dependency>
    <groupId>cn.tx.maven</groupId>
    <artifactId>HelloFriend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>compile</scope>
    <exclusions>
        <exclusion>
            <groupId>cn.tx.maven</groupId>
            <artifactId>Hello</artifactId>
        </exclusion>
    </exclusions>
</dependency>

老师强调:排除Hello后,依赖包中就不会引用Hello。

第十部分:Maven生命周期

10.1 三套生命周期

老师强调:Maven有三套相互独立的生命周期。

生命周期 目的
clean 清理项目
default 构建项目
site 建立项目站点

10.2 完整生命周期(default)

阶段 说明
validate 验证项目
compile 编译
test 测试
package 打包
verify 验证
install 安装到本地仓库
deploy 部署到远程仓库

老师强调 :执行mvn clean命令会依次执行clean生命周期中的pre-clean阶段及clean阶段。mvn命令后可以指定多个阶段,按输入顺序依次执行。

第十一部分:Maven继承与聚合

11.1 继承

老师强调:继承就是避免重复,把公共配置写到父模块,子模块继承后自动获得。

可继承的POM元素:groupId、version、description、organization、url、developers、properties、dependencies、dependencyManagement、repositories、build等。

11.2 依赖管理

方式 说明
父类直接引用 子类都会继承该依赖
dependencyManagement 子类不会默认继承,使用时无需考虑版本

11.3 聚合

老师强调:项目划分为多个模块时,需要一次构建多个模块,不用每个模块都mvn。

聚合配置:

复制代码
<modules>
    <module>core</module>
    <module>manage</module>
    <module>portal</module>
</modules>

老师强调 :对parent进行mvn install时,会对core、manage、portal项目均进行install操作。

11.4 properties属性

复制代码
<properties>
    <spring.version>5.2.0.RELEASE</spring.version>
</properties>

老师强调 :通过properties定义属性,然后在其他地方用${属性名称}引用,消除重复和统一管理。

第十二部分:Maven私服架构

12.1 私服介绍

老师强调 :公司在局域网内搭建自己的远程仓库服务器,称为私服。每个员工的电脑连接私服,员工将项目打成jar发布到私服,其他项目组从私服下载依赖。

私服的作用:

  • 公司内部的maven远程仓库
  • 充当代理服务器,私服没有的jar包会从中央仓库下载

12.2 Nexus仓库类型

类型 说明
hosted 宿主仓库,内部项目发布
proxy 代理仓库,代理中央仓库
group 仓库组,合并多个仓库
virtual 虚拟仓库,兼容Maven1

12.3 发布到私服

settings.xml配置:

复制代码
<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>

pom.xml配置:

复制代码
<distributionManagement>
    <repository>
        <id>releases</id>
        <url>http://localhost:8079/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://localhost:8079/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

老师强调 :id标签的值要和settings.xml配置文件中的id值保持一致。执行deploy命令发布项目到私服。

第十三部分:实训基础与三层架构

13.1 环境检查

环境 检查方式
JDK 找到安装目录的bin目录,测试java -version
MySQL 服务列表的mysql服务能否正常启动
Maven 命令行mvn -v

13.2 服务端三层开发

老师强调:B/S(浏览器/服务)架构,前端HTML/CSS/JS/VUE → 服务层(表现层/业务层/数据层)。

层 职责 对应技术
表现层 接收前端请求和参数,响应数据结果和视图 Servlet → Spring MVC
业务层 处理请求接口的业务逻辑 Spring
数据层 操作数据库,完成数据查询和修改 JDBC → MyBatis

13.3 MVC概念

概念 说明
Model 模型,面向对象,类(User)
View 视图,页面,呈现数据和样式
Controller 控制器,接受前端请求(Servlet)

附录一:核心易错点速查表

类别 易错点 正确理解
IDEA版本 用高版本 低版本更稳定,无AI提示干扰
安装路径 装C盘或D盘根目录 D盘新建文件夹
卸载 仅删图标 三个维度:安装目录+服务+过程文件
JDK配置 选到bin里面 选bin的前一层目录
编码 不设置UTF-8 必须设置,防乱码
Maven版本 IDEA 2017用高版本Maven IDEA 2017最高支持Maven 3.6.2
环境变量 只配Path 先配XXX_HOME,再配HOME/bin
本地仓库 用默认C盘 修改settings.xml指定目录
依赖范围 test和provided混淆 test仅测试,provided编译测试有效
依赖传递 optional默认值搞反 默认true可传递,false禁止
打war包 打jar包 Web项目打war包,Spring Boot打jar包
pom坐标 忘写version groupId、artifactId、version必须写
私服id settings和pom不一致 两处id必须保持一致

附录二:Maven命令速查表

命令 作用
mvn clean 清理target目录
mvn compile 编译
mvn test 运行测试
mvn package 打包
mvn install 安装到本地仓库
mvn deploy 部署到远程仓库
mvn -v 查看版本
相关推荐
小溪学编程1 小时前
C语言篇:枚举类型
java·c语言·前端
云和数据.ChenGuang1 小时前
JAVAEE AI工程师路线图
java·人工智能·java-ee·fastapi·springai·langchain4j
2601_962885721 小时前
如何用 Python 统计 A 股连续涨停(几连板)?
java·linux·python
大圣编蚕2 小时前
Spring AOP 失效排查:从原理到实战的完整指南
java·后端·spring
EatFan2 小时前
MCP 从概念到落地:Java(Spring AI Alibaba)与 .NET 双栈接入实操对比
java·人工智能·后端·spring·.net·java后端·mcp
专业程序开发源2 小时前
springboot全民健身和饮食健康管理系统29158-计算机课程设计、毕业设计
java·spring boot·后端·python·django·php·课程设计
ym hyd 1112 小时前
汽车零部件缺陷管理系统源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·汽车·毕设
Wang's Blog2 小时前
Java框架 SpringCloud 快速入门: 从服务拆分到注册中心的落地路线
java·开发语言·spring cloud
Wang's Blog3 小时前
Java框架 SpringCloud 快速入门: 全局过滤器(GlobalFilter)自定义鉴权
java·开发语言·spring cloud