maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

关于maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令。(IDEA配置)。

什么是maven及为什么需要使用maven

  • 什么的maven?

Maven是一个项目管理工具,它包含了一个项目对象模型 (POMProject Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

简单而言,我们需要使用maven来进行项目结构的管理,可以把maven抽象为一个大环境,我们的程序在此环

境下运行,后面将会介绍maven项目的工程结构。

提示:Maven的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟。

  • 为什么需要使用maven?

首先,我们平时写程序,需要引入各种jar包,当工程较大时,可能需要几十甚至上百个jar包,而不同的工程直接可能由于jar包的版本不一致而产生冲突;再者,每一个工程都背负着很多jar包,这样导致工程所占空间比例增加,能不能使得不同的模块工程共用一份jar包库?

使用maven的两个经典好处:依赖管理和项目一键构建

依赖管理:maven工程中不直接将jar包导入到工程中,而是通过在pom.xml文件中添加所需jar包的坐标,这样就很好的避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml文件中的坐标,到一个专门用于”存放jar包的仓库”(maven仓库)中根据坐标从而找到这些jar包,再把这些jar包拿去运行。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

项目一键构建:我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。什么是构建?指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理,这个过程称为构建。一键构建指的是整个构建过程,使用maven一个命令可以轻松完成整个工作。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

也就是说,我们只需要执行maven的一些指令,就能够自动帮我们完成项目的编译运行等操作。

maven的安装

  • maven软件下载

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

  • maven软件安装

Maven下载后,将Maven解压到一个没有中文没有空格的路径下,比如D:\software\maven下面。

解压后目录结构如下:

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

bin:存放了maven的命令,比如我们前面用到的mvn tomcat:run

boot:存放了一些maven本身的引导程序,如类加载器等

conf:存放了maven的一些配置文件,如setting.xml文件

lib:存放了maven本身运行所需的一些jar包

至此我们的maven软件就可以使用了,前提是你的电脑上之前已经安装并配置好了JDK。

  • maven及jdk配置

配置 MAVEN_HOME ,变量值就是你的maven安装 的路径(bin目录之前一级目录)

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

上面配置了我们的Maven软件,注意这个目录就是之前你解压maven的压缩文件包在的的目录,最好不要有中文和空格。

再次检查JDK的安装目录,如下图:

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

maven安装测试

通过 mvn -v命令检查 maven是否安装成功,看到maven的版本为3.5.2及java版本为1.8即为安装成功。

找开cmd命令,输入mvn –v命令,如下图:

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

maven工程的项目结构

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

作为一个maven工程,它的src目录和pom.xml是必备的。

进入src目录后,我们发现它里面的目录结构如下:

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

src/main/java —— 存放项目的.java文件

src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件

src/test/java —— 存放所有单元测试.java文件,如JUnit测试类

src/test/resources —— 测试资源文件

target —— 项目输出位置,编译后的class文件会输出到此目录

pom.xml——maven项目核心配置文件

注意:如果是普通的java项目,那么就没有webapp目录。

maven仓库

前面我们指出,需要对jar包进行统一管理,那么jar包将集中存放与何处呢?

maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

  • 本地仓库: 用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找

    默认本地仓库位置在${user.dir}/.m2/repository,${user.dir}表示windows用户目录。

  • 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。

    远程仓库可以在互联网内也可以在局域网内。

  • 中央仓库:在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

maven本地仓库的配置

在我们安装了maven后,安装了本地maven仓库,我们需要配置maven本地仓库的位置,使得maven能够顺利加载。

在MAVE_HOME/conf/settings.xml文件中配置本地仓库位置(maven的安装目录下):打开setting.xml文件

注意:从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,在C盘,一般为了节约空间,修改放在其他地方。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

  • 全局setting与用户setting

maven仓库地址、私服等配置信息都需要在setting.xml文件中配置,分为全局配置和用户配置。

在,maven安装目录下conf/setting.xml文件。此setting.xml文件用于maven的所有project项目,它是作为一个全局配置。

如果需要个性配置则需要在用户配置中设置,用户配置的setting.xml文件默认位置在:${user.dir} /.m2/settings.xml目录中,${user.dir}指windows 中的用户目录。

maven的常用命令

compile

compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。

test

test是maven工程的测试命令,mvn test,会执行src/test/java下的单元测试类。

clean

clean是maven工程的清理命令,执行后将删除target目录下的内容。(新一次编译前将上一次编译的结果干掉。)

package

package是maven工程的打包命令,mvn clean package -Dmaven.test.skip=true 跳过本地测试打包

install

install是maven工程的安装命令,执行install将maven打包jar/war包发布到本地仓库。

根据顺序,后面的执行的执行,首先需要执行前面的指令。

maven的生命周期

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

maven的pom文件

maven工程的坐标是在pom.xml中给出的,在pom.xml中定义坐标,内容包括groupId、artifactId、version。

  • 项目名称,类似于包名

coderxz.maven

  • 模块名称

maven-helloworld

  • 当前本标号

0.0.1-SNAPSHOT

  • 打包类型

:打包类型
jar:执行package会打成jar包
war:执行package会打成war包
pom :用于maven工程的继承,通常父工程设置为pom

idea中开发maven项目

  • 设置maven仓库

在使用maven工具前,我们需要对idea进行配置:

File->Settings配置maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXJ1w5Rw-1589425311615)(…/…/…/themes/smackdown/source/img/image-20200210135514025.png)]

idea中创建maven的web工程

打开idea,选择创建一个新工程

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

选择idea提供好的maven的web工程模板

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

点击Next填写项目信息

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。
点击Next,此处不做改动。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

点击Next选择项目所在目录

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

点击Finish后开始创建工程,耐心等待,直到出现如下界面。

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

手动添加src/main/java目录,如下图右键main文件夹的New Directory
maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。
创建一个新的文件夹命名为java

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。

点击OK后,在新的文件夹java上右键àMake Directory asàSources Root

maven的基础介绍,为什么需要使用maven、maven的安装及基本使用方法、maven工程的生命周期及常用指令、IDEA中创建maven工程。