1. 写在前面

1.1 初衷

翻了很多技术书籍,技术水平还是一般般,碰到问题总需要翻书、查各种搜索引擎。
归根结底,还是读书停留在表面,没有实践,遇到问题没有总结。

1.2 学习方式

跟着微信公众号javacode2018学习,记录过程中遇到的问题。

2. 为什么使用Maven

  1. 自动化项目构建

    • 控制项目的生命周期
    • clean、compile、test、package、deploy
  2. 依赖管理

    • 解决依赖版本不一致、版本冲突、依赖臃肿问题
  3. 项目结构清晰

    • 约定优于配置
    • 约定源码目录、编译输出目录、资源目录、测试源码目录、测试资源目录...

3. Maven环境搭建(Linux)

3.1 安装环境

  • Linux 7.6
  • jdk-8u231
  • maven-3.6.3

3.2 安装jdk

  1. 下载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
  2. 解压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
  3. 配置环境变量

    • 编辑/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
  4. 验证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

  1. 下载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
  2. 解压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
  3. 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
  4. 配置环境变量

    • 使用软连接简化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
  5. 验证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

  1. $PATH中查找mvn命令,找到可执行文件

    [root@john maven]# which mvn
    /opt/maven/maven/bin/mvn
  2. 执行mvn命令
  3. 查找maven配置文件。

    • 优先查找用户级别的配置文件,文件位置~/.m2/settings.xml
    • 如果找不到用户级别的,查找全局配置文件$M2_HOME/conf/settings.xml
    • 运行maven程序
  4. help:system表示给help插件发送system命令
  5. maven查找本地缓存目录(~/.m2)是否有help插件,如果没有继续执行下述步骤。
  6. 到中央仓库(https://repo.maven.apache.org)下载help插件到(~/.m2)目录
  7. 运行help插件,发送system命令,输出本地环境变量信息。

4.2 最佳实践

  1. 配置用户级别的配置文件

    • ~/.m2/settings.xml

John
10 声望2 粉丝

好记性不如烂笔头。


引用和评论

0 条评论