前提:得会基础java
前言:不知道出于什么原因,可能是喜欢犯贱吧,本人从大一到大二都一直在专研前端开发,一点也没接触过后端,但是突然抽风想学后端了,想试着自己全栈搞一下项目,于是在友仔建议下开始先从maven学起,接下来是我的后端maven学习笔记记录,有不对的地方还请指正
另外,阁下的学习视频是黑马的《黑马程序员JavaWeb开发教程》:Day04-01. maven-课程介绍_哔哩哔哩_bilibili 但是因为前面前端的部分我都学过了,就直接从maven部分开始学了
一、maven是啥?
百度百科的解释(跳过不看,没用)
简单来说一款统一管理Java代码项目的工具,就有这三功能:
(长话短说)
1、依赖管理:后端开发要引用很多外部依赖文件,什么jar包,用了maven就可以写一两句代码就自动安装配置好到你的项目,不用我们手动复制粘贴再配置
2、统一项目结构,不同开发软件的项目的结构不一样,ecslipe跟idea的项目文件肯定不能直接互相复制、打开,那么如果用他们写maven的项目,那么结构就是一样的
3、项目构建(maven的编译、打包这些指令,不管在window、Linux哪一个系统都可以执行)
编译(1、点击maven工程 2、点击右边侧边maven 3、找到Lifecycle目录下的compile,双击)
编译好的文件在这
打包(同样,双击package这个,就自动打包)
打包完还是在这
二、安装配置
1、下载压缩包资源
下载官网:nginx: download
下载这个版本,然后把文件解压,这里注意几点:
1、很多人会喜欢直接在下载文件的目录解压到别的目录,别!!先把它整个复制到你以后要一直放的路径!!再解压!!!
2、解压的路径不要!不要!不要带中文!不要带空格!要英文路径!!
3、把里面的这个[ apache-maven-版本号 ]文件夹解压出来
2、配置本地仓库(需要jar包资源的时候连接maven的中央仓库,下载完就放在本地仓库)
在刚刚maven的主目录新建一个文件夹,叫“mvn_repo”,别管为啥,创建就是了
然后打开这个文件,编译器、文本打开都行
然后找到这块代码,很好找的
复制这个代码到注释外面
<localRepository>/path/to/local/repo</localRepository>
然后把中间的"/path/to/local/repo"换成刚刚【mvn_repo】这个文件夹的路径
3、配置阿里云私服(下载速度更快)
还是在刚刚配置本地仓库那个文件代码,找到含<mirrors>这块的代码
把下面这段代码复制进<mirrors></mirrors>里面、换掉下面蓝色那一部分
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>
去掉这块
换上这块
当然用idea或者vscode打开看着会更方便
4、配置适合我们java有的JDK
maven可能默认的JDK不适应我们原本写java时我们安装的JDK版本,要把下面这个代码插进去,让maven全局适配你想要的JDK版本
<!-- java版本 --><profile><id>jdk-【你的版本号】</id><activation><activeByDefault>true</activeByDefault><jdk>【你的版本号】</jdk></activation><properties><maven.compiler.source>【你的版本号】</maven.compiler.source><maven.compiler.target>【你的版本号】</maven.compiler.target><maven.compiler.compilerVersion>【你的版本号】</maven.compiler.compilerVersion></properties></profile>
不知道自己jdk的“白瓷们”,可以输入【java -version】就可以查看到自己的jdk版本号
放到<profiles></profiles>标签代码的里面,像这样
5、配置环境变量
新建一个系统环境变量叫【MAVEN_HOME】路径就是maven文件夹的路径
接着到path里把【%MAVEN_HOME%\bin】加进去,搞定
【注意!】别像我这么撒比,在bin前面漏了个\,
我一开始写的错的是【%MAVEN_HOME%bin】,要写成【%MAVEN_HOME%\bin】!!!!
6、最后检查
在cmd命令行输入【mvn -v】
有东西就说明配置成功
“ 'mvn'不是内部或外部命令,也不是可运行的程序 ”就说明前面有错的步骤、遗漏细节
三、在idea里配置maven项目(单个项目配置好)
1、新建项目
2、创建空项目
3、右键空项目,构建模块
4、配置这项目的JDK环境
点击【项目】/【project】,将下面图片这两地方选择对应你刚刚配置maven的那个版本JDK
英文版
然后点“应用”点“确定”,OK
5、配置这个项目跟maven关联的环境
直接点【文件】—>【设置】
中文版
选到【构建、执行、部署】—>【构建工具】—>【Maven】
把【Maven 主路径】选为你解压安装的maven那个主路径
然后就能看到下面【本地仓库(R)】那里对应也变了
然后把【用户设置文件(S)】这里点击“重写”,找到、选择【maven解压安装路径】的【conf】的【settings.xml】
然后再点击展开【Maven】,点击【运行程序】,把【JRE(J)】选为刚刚我们用的JDK版本
最后一步配置,到【编译器】—>【Java编译器】的【项目字节码版本】调成跟JDK那个版本号一样
英文版(就不详细介绍了,自己对应看就行了)
四、还有一种全局配置的方式
1、点这里
出现这个
点【自定义】,点【所有设置】
2、然后重复我文章上面【第三点】的一样的操作
英文版
五、正式创建maven项目,准备写代码
1、在一个新建项目里点击左上角【文件】—>【新建模块】
老版本idea
然后新版本的idea直接点【新建模块】(别点那个“Maven Archetype”,那个不是)
然后骚等片刻,一个moven模块就会下载好
然后在【test】文件夹右键新建一个【目录】
自动有这个,选这个,回车
六、终于开始写java代码
1、先认识一下整体大结构
然后点开pom.xml文件可以看到我们刚刚自定义的那个【组织名(groupId)】【模块名(artifactId)】
2、那我们去哪里写java代码?
我们的java代码文件要写在【项目名】—>【src】—>【main】—>【java】—>【自定义“组织名”目录】下面
1、那么第一种方式就直接右键【src】—>【main】—>下的【java】,创建java类
然后名字叫【你设置的组织名(groupId).自定义类名】,比如【com.czm.HelloWorld】,这里的意思就是在【com.czm】目录下创建一个【HelloWorld】
2、直接在【组件名groupId】目录下创建java类,直接写类名就行,看个人习惯吧
成功,另外还会多生出一个文件夹【target】,这里面放的就是编译.java文件生成对应的.class字节码文件
3、最后理解一下这块,有点用的,我懒得说了
七、导入maven项目
点侧边m图标
点击“+”号,找到一个maven模块目录,选择pom.xml文件,就可以直接导入
第二种方法,我觉得麻烦,可以看看
七、依赖配置
1、什么是依赖
黑马课程的解释
学过前端的同志们,我们可以暂理解为【npm安装】搭配【main.js】搭配【package.json】,因为我们引入“uView”组件啊、“router”、“axios”、“mock”......等等这些,都需要先在命令行“npm install xxx”,然后在main.js里写import....配置好,然后在package.json那里我们不用更改,但是我们可以在这里看到我们的“uView”组件啊、“router”、“axios”、“mock”......等等这些的版本号,看看是否被成功安装了
但是这里的“依赖”只需要直接在【pom.xml】文件写这么几个代码,就可以自动安装好并顺带着配置完毕
2、怎么写依赖
假设我们需要一个依赖包叫【logback】,怎么导入?
不需要上网查怎么配置,直接记住这些语法:
所有依赖的内容写到:<dependencies> </dependencies>标签内
<dependencies>依赖1依赖2......
</dependencies>
然后一个依赖的基本代码格式就是:
<dependcy><groupId>组名</groupId><artifactId>依赖包名</artifactId><version>版本号</version>
</dependcy>
当然可能有些人可能并不知道自己要用的这个依赖包需要什么组名、依赖包名啥的
去这个网站可以查到相关依赖包的配置代码:https://mvnrepository.com/
比如我现在要一个叫logback的依赖包,直接搜logback,然后找到第一个点击logback-classic
随便选一个版本点进去
拖到下面,复制代码配置依赖的源码
【解释一下上图红色丢掉的是啥】
<scope>是依赖的作用范围:默认(去掉<scope>)作用全局、只作用与主程序、只作用于测试程序......
现在看到代码红色的,别慌,这不是报错,是因为之前没有下载安装过这个依赖,所以本地仓库查找不到这个文件就标红了,只需要点一下右上角的一个蓝色按钮
然后就下载安装好了
3、依赖传递
简单了解一下,我们手动配置完一个依赖之后,还会自动依赖上相关的一些依赖
比如我们刚刚配置的logback依赖(下图红色),点开会发现还跟着两个我们并没有配置的依赖(下图黄色)
这样能更直观的看
你也可以排除一些绑定的依赖
八、依赖的生命周期
只需重点关注红色部分的阶段
然后注意:虽然后面的阶段依赖于前面的阶段,但是是在各自的生命周期内,比如执行了【install阶段】必然执行了【compile阶段】【test阶段】......,但是并没代表一定执行了【clean阶段】,因为clean阶段是在【clean生命周期】的,而【install阶段】是在【default生命周期】
要执行某个阶段,你就
1、@阶段 + 方法
2、双击侧边栏对应的阶段
这里提一嘴:在test里要进行单元测试,要引入这个依赖,并设置范围是test