Maven第2篇:安装、配置、mvn运行过程详解

Maven第2篇:安装、配置、mvn运行过程详解

本文主要内容

  • linux中安装maven
  • window中安装maven
  • mvn命令运行的原理
  • maven配置设置

本篇环境

  1. jdk1.8
  2. maven3.6.2

我们要写java代码,需要安装jdk,那我们要使用maven,也类似,需要在我们的机器中安装maven。

linux中安装安装maven

maven是使用java语言编写的,所以我们要运行maven,需要先安装jdk。

安装jdk

  • 下载jdk
  • 解压jdk
  • 配置环境变量
  • 运行下面命令使环境变量生效
  • 验证jdk是否正常
  • 查看jdk版本

安装maven

  • 下载maven
  • 解压maven
    创建一个软连接指向apache-maven-3.6.2目录

[root@ady01 maven]# ln -s apache-maven-3.6.2 maven

  • 配置maven环境变量
  • 验证maven是否正常

window安装maven

安装jdk

安装maven

Maven的运行原理详解

本文后面会用到~这个符号,先对这个符号做一下说明,这个符号表示当前用户的目录

window中默认在C:\Users\用户名

linux root用户默认在/root目录,其他用户的~对应/home/用户名

后面的文章中我们就用~表示用户目录,这个地方不再说明。

运行下面命令,看一下效果

C:\Users\Think>mvn help:system
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom (4.7 kB at 4.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom (12 kB at 21 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom (33 kB at 44 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar (24 kB at 12 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom (15 kB at 13 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom (13 kB at 33 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar (209 kB at 29 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom (11 kB at 14 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
Progress (1): 153 kB

上面运行mvn help:system命令之后,好像从https://repo.maven.apache.org站点中在下载很多东西,最后又输出了系统所有环境变量的信息。

我们来详细看一下mvn help:system这个命令的运行过程:

  1. 运行mvn help:system之后
  2. 系统会去环境变量PATH对应的所有目录中寻找mvn命令,然后在D:\installsoft\maven\apache-maven-3.6.2\bin中找到了可执行的mvn文件
  3. 运行mvn文件,也就是执行mvn命令
  4. 通常一些软件启动的时候,会有一个启动配置文件,maven也有,mvn命令启动的时候会去/.m2目录寻找配置文件settings.xml,这个文件是mvn命令启动配置文件,可以对maven进行一些启动设置(如本地插件缓存放在什么位置等等),若/.m2目录中找不到settings.xml文件,那么会去M2_HOME/conf目录找这个配置文件,然后运行maven程序
  5. mvn命令后面跟了一个参数:help:sytem,这个是什么意思呢?这个表示运行help插件,然后给help插件发送system命令
  6. maven查看本地缓存目录(默认为~/.m2目录)寻找是否有help插件,如果本地没有继续下面的步骤
  7. maven会去默认的一个站点(apache为maven提供的一个网站[repo.maven.apache.org],这个叫中央仓库)下载help插件到~/.m2目录
  8. 运行help插件,然后给help插件发送system指令,help插件收到system指令之后,输出了本地环境变量的信息,如果系统找不到指定的插件或者给插件发送无法识别的命令,都会报错
    上面这个过程大家再感受一下,maven中所有的命令都是以插件的形式提供的,所以maven扩展也是相当容易的。

mvn 插件名称:help

上面这种会输出插件的帮助文档,来感受一个:

C:\Users\Think>mvn clean:help
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:help (default-cli) @ standalone-pom ---
[INFO] org.apache.maven.plugins:maven-clean-plugin:2.5

Maven Clean Plugin
  The Maven Clean Plugin is a plugin that removes files generated at build-time
  in a project's directory.

This plugin has 2 goals:

clean:clean
  Goal which cleans the build.
  This attempts to clean a project's working directory of the files that were
  generated at build-time. By default, it discovers and deletes the directories
  configured in project.build.directory, project.build.outputDirectory,
  project.build.testOutputDirectory, and project.reporting.outputDirectory.

  Files outside the default may also be included in the deletion by configuring
  the filesets tag.

clean:help
  Display help information on maven-clean-plugin.
  Call
    mvn clean:help -Ddetail=true -Dgoal=
  to display parameter details.


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.372 s
[INFO] Finished at: 2019-11-01T17:59:04+08:00
[INFO] Final Memory: 15M/487M
[INFO] ------------------------------------------------------------------------

这些后面还会详细介绍。

Maven的一些配置

启动文件设置

上面提到了mvn运行的时候,会加载启动的配置文件settings.xml,这个文件默认在M2_HOME/conf目录,一般我们会拷贝一个放在/.m2目录中,前者是全局范围的配置文件,整个机器上所有用户都会受到该配置的影响,而后者是用户范围级别的,只有当前用户才会受到该配置的影响。推荐使用用户级别的,将其放在/.m2目录,而不去使用全局的配置,以免影响到其他用户的使用。还有这样使用方便日后maven版本升级,一般情况下maven整个安装目录我们都不要去动,升级的时候只需要替换一下安装文件就可以了,很方便。

配置本地缓存目录

settings.xml中有个localRepository标签,可以设置本地缓存目录,maven从远程仓库下载下来的插件以及以后所有我们用到的jar包都会放在这个目录中,如下:

C:/Users/Think/.m1/repository

总结

  1. 掌握maven的安装过程
  2. ~表示当前用户目录
  3. maven的配置文件settings.xml一般我们放在~/.m2目录中,方便maven的升级,避免影响其他用户的配置
  4. 了解mvn命令的执行过程

你可能感兴趣的:(maven,maven,java,linux)