1. 写在前面
1.1 初衷
翻了很多技术书籍,技术水平还是一般般,碰到问题总需要翻书、查各种搜索引擎。
归根结底,还是读书停留在表面,没有实践,遇到问题没有总结。
1.2 学习方式
跟着微信公众号javacode2018
学习,记录过程中遇到的问题。
2. 为什么使用Maven
-
自动化项目构建
- 控制项目的生命周期
- clean、compile、test、package、deploy
-
依赖管理
- 解决依赖版本不一致、版本冲突、依赖臃肿问题
-
项目结构清晰
- 约定优于配置
- 约定源码目录、编译输出目录、资源目录、测试源码目录、测试资源目录...
3. Maven环境搭建(Linux)
3.1 安装环境
- Linux 7.6
- jdk-8u231
- maven-3.6.3
3.2 安装jdk
-
下载jdk
- 到oracle官网下载jdk-8u231-linux-x64.tar.gz
-
下载到
/opt/jdk
目录[root@john data]# cd /opt/jdk/ [root@john jdk]# ll -rw-r--r-- 1 root root 194151339 12月 8 16:37 jdk-8u231-linux-x64.tar.gz
-
解压jdk
-
解压到当前目录
[root@john jdk]# tar -zxvf jdk-8u231-linux-x64.tar.gz [root@john jdk]# ll drwxr-xr-x 7 10 143 4096 10月 5 18:13 jdk1.8.0_231 -rw-r--r-- 1 root root 194151339 12月 8 16:37 jdk-8u231-linux-x64.tar.gz
-
-
配置环境变量
-
编辑
/etc/profile
文件[root@john jdk]# vim /etc/profile # 进入vim编辑器,按G跳至文件最后,追加以下内容 export JAVA_HOME=/opt/jdk/jdk1.8.0_231 export PATH=$JAVA_HOME/bin:$PATH
-
使配置生效
[root@john jdk]# source /etc/profile
-
-
验证jdk版本
[root@john jdk]# java -version java version "1.8.0_231" Java(TM) SE Runtime Environment (build 1.8.0_231-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
3.3 安装maven
-
下载maven
-
下载到/opt/maven目录
[root@john maven]# wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz [root@john maven]# ll -rw-r--r-- 1 root root 9506321 11月 20 05:50 apache-maven-3.6.3-bin.tar.gz
-
-
解压maven
-
解压到
/opt/maven/
目录# -z: 是否使用gzip压缩 # -c: 创建压缩文件 # -x: 解压缩 # -v: 显示执行过程(--verbose) # -f: 指定文件 # -C:指定目录 # --strip-components num:去除第num层目录结构 [root@john maven]# tar -zxvf apache-maven-3.6.3-bin.tar.gz
-
-
maven目录结构
- bin: 运行脚本目录。
- boot: 类加载器框架。
- conf: 配置文件目录, 包含全局配置文件
settings.xml
。 -
lib: maven运行时所需要的java类库。
[root@john maven]# ll /opt/maven/apache-maven-3.6.3/ drwxr-xr-x 2 root root 4096 12月 8 17:09 bin drwxr-xr-x 2 root root 4096 12月 8 17:09 boot drwxr-xr-x 3 root root 4096 11月 7 20:32 conf drwxr-xr-x 4 root root 4096 12月 8 17:09 lib -rw-r--r-- 1 root root 17504 11月 7 20:32 LICENSE -rw-r--r-- 1 root root 5141 11月 7 20:32 NOTICE -rw-r--r-- 1 root root 2612 11月 7 20:32 README.txt
-
配置环境变量
- 使用软连接简化maven升级(升级时只需要改变软连接指向)
-
创建maven的软连接
[root@john maven]# ln -s apache-maven-3.6.3 maven [root@john maven]# ll drwxr-xr-x 6 root root 4096 12月 8 17:26 apache-maven-3.6.3 -rw-r--r-- 1 root root 9506321 11月 20 05:50 apache-maven-3.6.3-bin.tar.gz lrwxrwxrwx 1 root root 18 12月 8 17:28 maven -> apache-maven-3.6.3
-
配置环境变量
[root@john maven]# vim /etc/profile # 进入vim编辑器,按G跳至文件最后,追加以下内容 export M2_HOME=/opt/maven/maven export PATH=$M2_HOME/bin:$PATH
-
使配置生效
[root@john maven]# source /etc/profile
-
验证maven版本
[root@john maven]# mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /opt/maven/maven Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: /opt/jdk/jdk1.8.0_231/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.12.2.el7.x86_64", arch: "amd64", family: "unix"
4. maven运行原理
4.1 执行命令mvn help:system
-
到
$PATH
中查找mvn命令,找到可执行文件[root@john maven]# which mvn /opt/maven/maven/bin/mvn
- 执行mvn命令
-
查找maven配置文件。
- 优先查找用户级别的配置文件,文件位置~/.m2/settings.xml
- 如果找不到用户级别的,查找全局配置文件
$M2_HOME/conf/settings.xml
- 运行maven程序
-
help:system
表示给help插件发送system命令 - maven查找本地缓存目录(
~/.m2
)是否有help插件,如果没有继续执行下述步骤。 - 到中央仓库(
https://repo.maven.apache.org
)下载help插件到(~/.m2
)目录 - 运行help插件,发送system命令,输出本地环境变量信息。
4.2 最佳实践
-
配置用户级别的配置文件
~/.m2/settings.xml
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。