一 . Maven是什么?
Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从一个中心信息管理项目的构建,报告和文档。
官方解释:
Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标
(goal)的逻辑。
二. Maven优点:
1.约定优于配置
2.测试支持
3.构建简单
4.插件丰富
maven能解决什么问题?
通俗点说,我们知道,项目开发不仅仅是写写代码而已,期间会伴随着各种 必不可少的事情要做,下面列举几个感受一下:
1、我们需要引用各种 jar 包,尤其是比较大的工程,引用的 jar 包往往有几十个乃至上百个, 每用到一种 jar 包,都需要手动引入工程目录,而且经常遇到各种让人抓狂的 jar 包冲突,版本冲突。
2、我们辛辛苦苦写好了 Java 文件,可是只懂 0 和 1 的白痴电脑却完全读不懂,需要将它编译成二进制字节码。好歹现在这项工作可以由各种集成开发工具帮我们完成,Eclipse、IDEA 等都可以将代码即时编译。当然,如果你嫌生命漫长,何不铺张,也可以用记事本来敲代码,然后用 javac 命令一个个地去编译,逗电脑玩。
3、世界上没有不存在 bug 的代码,计算机喜欢 bug 就和人们总是喜欢美女帅哥一样。为了追求美为了减少 bug,因此写完了代码,我们还要写一些单元测试,然后一个个的运行来检验代码质量。
4、再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起,定型 打包,如果是 web 项目,还需要将之发布到服务器,供人蹂躏。
试想,如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程,管理 jar 包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成 Web 站点,你会心动吗?Maven 就可以解决上面所提到的这些问题。
本次实验环境所用系统为CentOS7
内核版本:
[root@xinsz08 ~]# uname -r
3.10.0-862.14.4.el7.x86_64
maven 下载地址
maven版本号 3.6.2
[root@xinsz08 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
[root@xinsz08 ~]# ls
apache-maven-3.6.2-bin.tar.gz
[root@xinsz08 ~]#
下载地址为:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
解压maven
[root@xinsz08 ~]# tar xf apache-maven-3.6.2-bin.tar.gz
[root@xinsz08 ~]# ls
apache-maven-3.6.2 apache-maven-3.6.2-bin.tar.gz
[root@xinsz08 ~]#
设置环境变量
[root@xinsz08 ~]# vim /etc/profile
[root@xinsz08 ~]# tail -n 2 /etc/profile
export MAVEN_HOME=/root/apache-maven-3.6.2
export PATH=$PATH:$MAVEN_HOME/bin
[root@xinsz08 ~]#
注: MAVEN_HOME 的路径改成自己的maven所在路径即可
是配置生效
[root@xinsz08 ~]# source /etc/profile
测试环境变量是否设置成功
[root@xinsz08 ~]# echo $MAVEN_HOME
/root/apache-maven-3.6.2
测试maven命令
[root@xinsz08 ~]# mvn -version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_222, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.14.4.el7.x86_64", arch: "amd64", family: "unix"
[root@xinsz08 ~]#
在国内访问Maven仓库,连接速度太慢。下面是将中央仓库替换成阿里云的中央仓库的方法。
打开maven文件夹,进入其中的conf文件夹设置配置文件:settings.xml
我的路径如下:
[root@xinsz08 conf]# pwd
/root/apache-maven-3.6.2/conf
[root@xinsz08 conf]#
[root@xinsz08 conf]# vim settings.xml
阿里云的源为: http://maven.aliyun.com/nexus/content/groups/public
到此maven配置完毕。
maven的基础命令
1) complie
作用是Java的文件编译成class文件
2) test
test 是 maven 工程的测试命令 mvn test,会执行java 目录下的单元测试类。
3) package
package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于web 工程打成war
包
4) install
install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。从运行结果中,可以看出:
当后面的命令执行时,前面的操作过程也都会自动执行
使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:
linux下的maven安装和介绍就到这里,都是基础中的基础,如果你不会Java编程,可能还是会有点晕,所以做运维做到最后,还是要懂一门甚至多门开发语言的,比如Java,比如Python。