Maven主要功能以及概念介绍

Maven主要功能以及概念介绍

  • Maven的主要功能
    Maven是一种构建工具(打包项目)、依赖管理工具(资源依赖管理工具:主要用于集成资源)、项目信息聚合工具

这里写图片描述

这里写图片描述

这里写图片描述

项目的开发环境(eclipse中包含jre包、 j2ee包)、测试环境的部署(Tomcat部署)是不一样的,主要体现在包的结构等
之前是通过Ant进行打包部署,在其中写相应的脚本,告诉需要引用哪些包。
Maven集成了Ant

  • Maven的核心概念
    1.坐标
    定位在中央仓库的位置,在pom文件中有详细定义

这里写图片描述
组成路径信息,从远程中央仓库获取资源,

这里写图片描述
2.依赖
scope参数:依赖范围
maven项目结构
src目录下有main (主代码)、test(测试代码),与src同级的文件有个pom.xml
这里写图片描述

传递性依赖
这里写图片描述

排除传递性依赖(exclusion标签声明)

这里写图片描述

子项目在继承父项目时,用parent声明
这里写图片描述

3.仓库
这里写图片描述

这里写图片描述

这里写图片描述
先找本地仓库,再找远程仓库

4.生命周期
5.插件

  • Maven环境配置
    官网地址:
    www.apache.org
    这里写图片描述

点击下载下载(注意jdk版本)
这里写图片描述

配置环境变量(必须依赖jdk,所以要求环境变量中有对应的JAVA_HOME)
配置maven信息
新建环境变量

变量名:maven_home
变量值 :对应安装路径
这里写图片描述

然后配置Path

在之后添加 ;%maven_home%\bin;
注意原来如果有;则不需要重复添加;(所有的变量用逗号分隔)

这里写图片描述

查看是否正常运行
cmd下 输入
mvn -v;
这里写图片描述
(maven的jdk版本和环境变量中配置的JAVA_HOME一致)

java -version
(可能与环境变量中的jdk版本不同)

  • *maven生命周期

这里写图片描述

最常用最上边两个
每一个阶段都有相应的命令(执行命令之前的命令都会被默认执行)
主要文件pom.xml

src 目录分为:
main:(主项目-开发用到)

test:(测试项目)
maven项目
这里写图片描述
cmd进入maven项目的路径下

在maven安装目录下conf
配置文件settings.xml

本地仓库默认位置
这里写图片描述

这个路径往往需要修改
在apache的安装同级目录下新建一个文件夹

这里写图片描述

配置本地仓库路径

这里写图片描述

在cmd的mavan项目路径下 执行

mvn clean :如果项目之前做过相应的编译,则把编译的文件清除掉
BUILD SUCCESS 成功clean

编译命令
mvn compile:大量下载远程资源jar包(需要的资源在pom.xml中定义)–资源下载有约束,也会报错,网络不通畅也会影响

编译后,mavenLocalDB文件中有了内容

这里写图片描述

maven与eclipse等开发平台集成,可以方便的引用资源jar包

compile 完成之后 说明资源以下载,而且说明正确编译 而且在maven项目的文件夹中多了一个文件target

这里写图片描述

target中主要存放class,即编译后的文件

这里写图片描述

测试优先,大型项目 团队成员更新代码后,要做maven test,以保证更新的代码正确

主要执行maven项目src\test的内容,而maven compile编译的是maven项目\src\main中的内容

下载test需要的包(测试框架的包)
测试包出错 BUILD FAILED(注意错误内容)

spring 4测试框架 可能会报缺少插件
这里写图片描述
最低版本满足 jdk1.8 18

这里写图片描述

所以要更改jdk版本

不同版本的maven下载资源时可以重用(注意maven版本和jdk版本之间的关系)

mvn install :形成一个war包可供发布(打包的实质就是整合jar包外部资源和编译的class产生可运行的war包,可以tomcat或者weblogic上部署运行)
需要下载大宝的工具文件,第一个打包会比较慢,第二次打包会更快(因为打包资源已下载好)

打包后生成的war包在maven项目目录的target下边
此处为spring项目 ,war包拷贝到tomcat目录下边可直接运行

这里写图片描述

Maven常用命令

mvn clean:清除以前编译的代码,删除target目录和相关内容删除

mvn compile : 编译项目主目录下边的代码(main下的代码)–下载main相关代码依赖的外部资源

mvn test :编译项目主目录下边的test代码(编译test之前一定编译main代码,保证main正常编译成功)–下载test依赖的外部资源 前提需要执行mvn compile(若不主动执行,命令会自动执行mvn compile)

mvn install: 把编译好的class文件和下载的jar都打成一个完整的*.war文件,直接使用war包可以进行部署

  • Maven与开发环境eclipse集成
    1.比较maven项目和普通eclipse中web项目的区别
    这里写图片描述

所谓的eclipse项目其实就是多了一些项目的管理文件
比如.classpath 、.project 、.settings文件夹等
而maven项目只有src 、pom.xml

这里写图片描述

通过命令可以给maven项目生成eclipse配置信息

cmd下进入到maven项目的路径下

mvn eclipse:eclipse :运行此命令可以给maven项目生成eclispe需要的项目管理文件

运行后目录结构发生变化

这里写图片描述

用eclipse打开构建后的项目

这里写图片描述

开发结构其实无所谓

真正的项目运行是部署在tomcat服务器上的
部署结构和开发结构不同的 比如:
这里写图片描述

maven项目在eclipse中的开发结构

这里写图片描述

可能会报错

资源jar包引用可能会出现问题,是由于路径引用错误导致的,缺少jar包

这里写图片描述

所以要修改默认c盘的路径

在eclipse中配置 查看maven版本
拷贝maven安装目录的配置文件 路径
这里写图片描述

设置eclipse中默认的jar引用路径信息
这里写图片描述

修改后
这里写图片描述

可能由于在eclipse中jdk版本不一样,maven也会报错

maven项目中的pom.xml中声明了jdk版本

这里写图片描述

在eclipse中单独设置jdk 换成jdk1.7 指明已安装的jdk

此时maven项目在eclipse中不会报错
可以对maven项目在eclipse中进行修改

在cmd下进行编译、测试以及打包

pom.xml中也声明了服务器部署的环境版本等
这里写图片描述

jetty:与tomcat同样功能的一个内置的serveltCotainer容器,实质也是Servlet容器

注意 :此文用的maven项目是springMVC的一个测试项目



版权声明:本文为qq_19704045原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。