【IDEA】Maven的安装配置

转载自:https://blog.csdn.net/qq_35501660/article/details/84660256

 

1、maven是什么

maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目在持续增长。

 

 

2、什么是项目构建

项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程

 

 

2.1、传统项目构建过程

传统的使用eclipse构建项目的过程如下:
 

【IDEA】Maven的安装配置

构建过程如下:

1)在IDEA中创建一个java web工程

2)在工程中编写源代码及配置文件等

3)对源代码进行编译,java文件编译成class文件

4)执行Junit单元测试

5)将工程打成war包部署至tomcat运行

 

2.2、maven项目构建过程

Maven将项目构建的过程标准化,每个阶段使用一个命令完成,下面展示了构建过程的一些阶段,大概了解下

 【IDEA】Maven的安装配置

上图中部分阶段命令如下

清理阶段对应Maven的命令是clean,清理输出的class文件

编译阶段对应maven的命令式是compile,将Java代码编译成class文件

打包阶段对应maven命令是package,Java工程可以打包成Jar包,web工程可以打开war包

 

运行一个maven工程(web工程) 需要一个命令 tomat.run

Maven工程结构的有点:

1、一个命令完成构建、运行,方便快捷。

2、maven对每个构建阶段进行规范,非常有利于大型团队协作开发
 

3、什么是依赖管理

什么是依赖?一个Java项目可能要使用一些第三方的Jar包才能运行,那么我们

说这个Java项目依赖了这些第三方的jar包.

             举个例子:一个crm系统.它的架构是ssh框架,该crm项目依赖ssh框架,具体它依的Hibernate Spring Structs2

             什么是依赖管理?就是对项目所有依赖的Jar包进行规范化管理
 

 

3.1、传统项目的依赖管理

传统的项目工程要管理所依赖的jar包完全依靠人工进行,程序员从网上下载Jar包添加到项目工程中去,如下图:程序员手工将Hibernate等框架依赖的jar包添加到工程的WEB-INF/lib目录下

 

【IDEA】Maven的安装配置

手工拷贝jar包添加到工程中的问题是:

1.没有队jar包版本的统一管理,容易导致版本冲突

2.从网上找jar包非常不方便,有些Jar包找不到

3.jar包添加到工程中导致工程过大

 

3.2、maven项目的依赖管理

maven项目管理的Jar不需要手动想工程添加jar包,只需要在pom.xml(maven工程的配置文件)  添加jar包的坐标,自动从Maven仓库中下载jar包 运行 ,如下图 

【IDEA】Maven的安装配置

使用maven以来管理添加jar包的好处:

1.通过pom.xml文件对Jar包进行统一的管理,可以避免版本冲突

2.maven团队维护了一个非常全的maven仓库,里面包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便

 

 

4、使用maven的好处

通过上边介绍传统项目和maven项目在项目构建以及依赖管理方面的区域,maven有如下的好处

1.一步构建

maven对项目构建过程进行标准化,通过一个命令即可完成构建过程.

2.依赖管理

maven过程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不容易出错

3.maven的跨平台,可在window linux 上使用

4. maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用Maven来构建项目
 

 

5、Maven的下载使用

 

5.1、Maven的下载

从该网站 http://maven.apache.org/download.cgi 下载

【IDEA】Maven的安装配置

 

2.安装-解压即可 注意不要解压在中文路径下

3.下面是解压后的目录

【IDEA】Maven的安装配置

 

5.2、配置Maven

在环境变量中,新建变量名 MAVEN_HOME值为Maven的安装路径

然后在PATH中引用你的MAVEN_HOME 如下图

【IDEA】Maven的安装配置

【IDEA】Maven的安装配置

 

5.3、验证安装是否正确

查看是否配置成功可以在shell中数如 mvn -v出现如下图所示说明配置成功,如果有时出现的不是本地命令,也可以用管理员省份打开shell重试

【IDEA】Maven的安装配置

 

 

6、maven仓库

maven仓库的工作需要从仓库下载一些jar包,如下图所示,本地的项目A,项目B等都会通过Maven软件从远程仓库下载Jar包保存到本地的仓库上。本地仓库,就是本地文件夹,当第二次需要此jar包的时候就不再需要从远程仓库下载了,因为本地仓库已经存在,本地仓库类似于缓存的存在。

【IDEA】Maven的安装配置

 

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

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

远程仓库:如果本地需要插件或jar包,本地仓库没有,则去远程仓库去下载

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

6.1、配置本地仓库

在任意盘符下新建一个目录作为仓库

然后在Maven的安装目录下找到conf目录下的settiings.xml配置文件,打开此文件配置本地仓库的路径

【IDEA】Maven的安装配置

【IDEA】Maven的安装配置

 

本地仓库目录建立好了之后,打开settings.xml文件进行配置本地仓库

<localRepository>D:\my_maven_local_repository</localRepository>

【IDEA】Maven的安装配置

 

6.2、Maven常用命令介绍

【IDEA】Maven的安装配置

注意:运行Maven命令的时候,首先需要定位了Maven项目的目录,也就是项目的pom.xml文件所在的目录.否则,必以通过参数来制定项目的目录.

如下图所示

【IDEA】Maven的安装配置

 

打开命令窗口之后,就可以手动输入Maven命令 

【IDEA】Maven的安装配置

以上是我们在控制台中输入命令来构建Maven项目,那后面我们都是会在软件中采用图形界面化的方式来运行Mave命令,比如我们的IDEA,帮我们集成好了maven项目的管理模块,那我们就可以使用IDEA来操作Maven项目了。

 

6.3、5重要Maven命令讲解

 

【compile】

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

cmd进行命令状态,执行Mvn compile,如下图提示成功:

【IDEA】Maven的安装配置

 

查看target目录,class文件已生成,编译完成.

【IDEA】Maven的安装配置

 

【test】

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

cmd执行 mvn test执行src/test/java下的单元测试类,下图为测试结果,运行一个测试用例,全部成功

【IDEA】Maven的安装配置

 

【package】

package是Maven工程的打包命令,对于java工程执行package打包成jar,对于web工程打包成war.

 

 

【install】

install是maven工程的安装命令,执行install将Maven打包成jar包或war包的形式发布到本地仓库,

从运行结果中,可以看出:

当后面的命令执行时,前面的操作过程也都会自动执行
 

 

7、生命周期

三套生命周期

maven对项目构建过程氛围三套项目独立的生命周期,这里说的的是"三套",而且"相互独立",这三套周期分别是

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

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

Site Lifecycle 生成项目报告,站点,发布站点。
【IDEA】Maven的安装配置

 

8、Maven项目股工程目录确定 

使用maven创建的工程我们称之为Maven工程,maven工程具有一定的目录规范,如下:

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

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

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

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

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

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

 

Project

  |-src

  |   |-main

  |   |  |-java        —— 存放项目的.java文件

  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件

         |-webapp     —— webapp目录是web工程的主目录

            |-WEB-INF

              |-web.xml

  |   |-test

  |      |-java        ——存放所有测试.java文件,如JUnit测试类

  |      |-resources   —— 测试资源文件

  |-target             —— 目标文件输出位置例如.class、.jar、.war文件

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

 

【非常重要】

Maven项目需要遵循上面的规范,我们当然可以手动去创建maven的目录结构,

不过一般我使用的是IDEA去帮我创建爱你的,不管是软件创建,还是硬件创建,都需要遵循上面的结构,

如图所示,IDEA创建的项目结构如下

【IDEA】Maven的安装配置

 【IDEA】Maven的安装配置

 

8.1、pom.xml文件

一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标,项目依赖,项目信息,插件目标等.

 

【依赖管理系统】

通过maven的依赖管理对项目所依赖的Jar包进行统一管理.

比如:项目股依赖juni4.9,

通过在pom.xml中定义junit4.9的依赖即使用junit4.9,如下图所示是junit4.9的依赖定义:

【IDEA】Maven的安装配置

 

【一个项目生命周期】

使用maven完成项目的构建,项目构建包括:清理 编译 测试 部署等过程 ,maven将这些过程规范为一个生命周期,如下所示是生命周期的各个阶段:

【IDEA】Maven的安装配置

 

maven通过该执行一些简单明了即可实现上边生命周期的各个过程,比如执行 mvn  compile 执行编译 执行mvn clean执行清理

 

【一组标准集合】

   Maven将整个项目管理过程定义一组标准,比如:通过Maven构建工程有标准的目录结构,有标注你的生命周期阶段 依赖管理有标准的坐标定义等.

 

【插件目标】

maven管理项目生命周期过程都是基于插件完成的
 

 

9、定义maven坐标

每个Maven工程都需要定义本工程的坐标,报坐标是Maven对jar包的身份定义,比如:入门程序的的坐标定义如下:

【IDEA】Maven的安装配置

 

 

 

10、下面重点介绍IDEA用来开发Maven项目

 

10.1、首先IDEA中配置Maven

【IDEA】Maven的安装配置

 

10.2、使用IDEA来创建一个Mave项目

File -New -Project 弹出如下窗口 -选择Maven项目

【IDEA】Maven的安装配置

 

下一步:

【IDEA】Maven的安装配置

 

下一步:

【IDEA】Maven的安装配置

 

下一步:

【IDEA】Maven的安装配置

 

Finish之后,

IDEA开始创建Maven,你如果是第一次创建,需要联网,下载一些插件. 

【IDEA】Maven的安装配置