Maven

Maven简介

  • Maven的作用

  • Maven是一个项目管理工具,它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等。

  • Maven工具是基于POM实现的。在Maven的管理下每个项目都相当于是一个对象。(注:POM是Project Object Model的缩写,即项目对象模型)

  • Maven标准化了项目的结构。即Maven对项目结构和构建命令等进行了标准化定义。

  • Maven提供了一个免费的中央仓库。

  • Maven是跨平台的,在各个平台上的命令都是相同的统一的。

Maven的作用

一键构建

构建:将项目进行进行编译、测试、运行、打包、安装、安装、部署等过程称为构建。

一键构建即可以通过maven工具通过命令轻松完成构建的工作。

项目的生命周期

使用maven完成项目的构建过程中,包括:验证、编译、测试、打包、部署等过程,maven将这些过程规范为项目构建生命周期。

生命周期

作用

验证Validate

验证项目是否正确

编译 Compile

对源代码进行编译

测试 Test

进行单元测试小功能

打包 package

创建JAR/WAR包

检查 Verify

对集成测试的结果进行检查,以保证质量达标

安装 install

安装打包的项目到本地仓库,以供其他项目使用

部署 deploy

拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

maven由三套相互独立的生命周期。分别是构建生命周期,clean生命周期(该周期的作用为清理构建后的文件),site生命周期(该周期的作用是生成项目报告)。其中构建生命周期重点学习。

Maven常用命令

依赖管理

  1. 在传统的web项目中,需要将项目中所需要的依赖jar包复制到工程中。随着项目的功能越来越多,需要的jar包也越来越多,这会导致该web项目所占用的空间越来越大。

  1. 所以我们可以使用maven工具来管理这些jar包。在maven工程中不直接将jar包导入到工程,而是有一个专门存放jar包的仓库。

  1. 仓库中的每个jar包都有自己的坐标。所以在maven工程中通过jar包的坐标拿取到相应的jar包即可运行程序。

Maven仓库类型

Maven常用命令

Maven配置文件

  1. 配置本地仓库

本地仓库的默认位置是${user.dir}/.m2/repository,${user.dir}表示windows用户目录,可以通过修改${MAVEN_HOME}\conf\settings.xml文件修改本地仓库的位置。

在<settings>中添加如下标签:

  1. 配置镜像

因为访问中央仓库速度较慢,所以可以配置镜像代理中央仓库的下载请求。在<settings>下的<mirros>中添加如下标签即可配置镜像:

<mirror> 
  <!-- 指定镜像ID -->
  <id>nexus-aliyun</id> 
  <!-- 匹配中央仓库。-->
  <mirrorOf>central</mirrorOf>
  <!-- 指定镜像名称 -->  
  <name>Nexus aliyun</name> 
  <!-- 指定镜像路径 -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>
  1. 配置JDK版本

在初始下载的maven中对于JDK的默认设置为JDK1.5版本。因为不同的JDK版本由不同的语法或者方法的使用,所以一般将maven的JDk设置为自己电脑中JDK的版本。

设置方法为:在<settings>下的<profiles>中添加如下标签即可配置JDK版本:

<profile>  
  <id>jdk11</id>  
  <activation>  
    <activeByDefault>true</activeByDefault>  
    <jdk>11</jdk>  
  </activation>  
  <properties>  
    <maven.compiler.source>11</maven.compiler.source>  
    <maven.compiler.target>11</maven.compiler.target>  
    <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>  
  </properties>  
</profile>

Maven的安装

  1. 下载

下载网址:Maven – Download Apache Maven

现在上图中红色部分即可。

  1. 安装

  1. 将下载的压缩包直接解压即可

  1. mave的目录如下图所示

bin:是存放maven的命令文件夹

boot:存放maven本身的引导文件

conf:存放maven的配置文件

lib:存放maven本身运行所需要的jar包

  1. 配置环境变量

因为Maven是由java语言开发的,运行时依赖java环境,所以需要在计算机环境变量中配置JAVA_HOME,配置如下图所示:

配置MAVEN_HOME和path环境变量是为了更方便的使用Maven命令(即可以在控制台中更方便的使用maven命令。配置过程如下:

  1. 添加MAVEN_HOME环境变量:

  1. 在path中添加内容:

  1. 查看版本

  1. 注意事项

  1. 要想运行maven需要先安装jdk且配置环境变量JAVA_HOME,因为maven的运行依赖于java。

Maven工程的类型和结构

Maven的工程类型

  1. POM工程

POM工程是逻辑工程,maven并不会对该类型工程做打包处理,这些工程往往不包含具体的业务。

  1. JAR工程

普通java工程,在打包时会将项目打成jar包。

  1. WAR工程

JAVA Web工程,在打包时会将项目打包成war包。

Maven工程结构

  1. 文件目录结构

  1. 如图所示:

  1. src:源代码

  1. target:编译生成文件

  1. pom.xml:maven工程配置文件

  1. 项目结构

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

  1. src/main/resources:存放项目资源文件,配置文件

  1. src/test/java:存放项目的测试文件

  1. src/test/resources:存放测试时的资源文件

Maven工程的开发

构建maven工程

对pom文件进行配置

  1. 项目的基本信息

  1. groupId:一般定义项目组名,命名规则使用反向域名。

  1. artifactId:一般定义项目名,命名使用小写字母。项目发布后,它的坐标是groupId+artifactId。

  1. version:定义版本号。版本号一般有三段,第一段:革命性的产品升级。第二段:新功能版本。第三段:修正一些bug。

  1. packaging:packaging定义打包方式。

  1. 依赖jar包

<dependencies>中定义依赖的jar包坐标。查找依赖坐标的网站:https://mvnrepository.com/

  1. 配置信息

<properties>中定义一些配置信息。

  1. 插件配置

<plugins>中定义第三方插件。eg:添加Tomcat7插件示例

配置使用maven中的Tomcat7插件运行项目:

  1. 通过命令运行:

  1. 配置运行Tomcat7插件:

依赖范围

在测试程序的时候会遇到如下错误:

该错误是因为使用maven引入的jar包在运行时与tomcat插件中的jar包引起的冲突。所以需要设置引入的jar包的依赖范围,这样就可以避免在运行时与tomcat插件中的jar引起冲突。设置依赖范围如下:通过在<dependency>中添加<scope>,可以设置依赖的作用范围,有以下取值:

compile

默认范围。表示该依赖在编译和运行时生效,项目打包时也会将该依赖打包进去。

provided

使用此依赖范围的Maven依赖,编译和测试时有效,但在运行时无效。典型的例子是servlet-api,在运行时Web容器已经提供依赖,就不需要Maven重复地引入一遍。

runtime

runtime范围表明编译时不需要生效,而只在运行时生效。典型的例子是JDBC驱动包,编译时只需要JDK的JDBC接口即可,只有运行项目时才需要具体的JDBC驱动。

test

test范围表明使用此依赖范围的依赖,只在编译和运行测试代码的时生效,程序的正常运行不需要此类依赖。典型的例子就是JUnit,它只有在编译测试代码及运行测试的时候才需要。

system

如果有些你依赖的jar包没有Maven坐标的,它完全不在Maven体系中,这时候你可以把它下载到本地硬盘,然后通过system来引用。(不推荐使用)

测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值