Maven 工具

1.什么是maven?

        maven是Apache基金会管理的项目,开源;

        maven是自动化构建工具。 

  • 1)自动化---给出命令,maven可以根据给出的命令实现操作。
  • 2)构建---将项目中所需要的原材料,生产加工成为可以被运行和使用的项目的过程。
  • 3)项目的原材料:静态的和动态的:静态的:html、css、js、图片、音频、视频、flash动画;动态的:servlet、jsp、代码、配置文件。

2.maven的作用?

  • 1)自动化构建
  • 2)实现jar包管理
  • 3)实现项目结构设计

3.maven官网 

https://maven.apache.org/

 

 4.下载和安装

1.下载位置

历史版本:https://archive.apache.org/

https://archive.apache.org/dist/maven/maven-3/

2. 安装条件

  • A、maven的条件:jdk安装、maven安装路径不能有中文和空格
  • B、maven的安装:解压即用,配置环境变量,可能需要初始化配置,测试  cmd----->  mvn -v ----->出现maven的安装或者配置信息
  •  C、初始化---如果都不配置,均使用默认配置方式

·        镜像配置、jdk版本配置、本地仓库配置

        本地库配置(默认配置:当前系统登录用户目录下的.m2文件夹中)---路径中不含有中文和空格,例如:

         <localRepository>G:\repository</localRepository>

        镜像配置(默认:到中央库下载)

        常见的镜像库:阿里(maven.aliyun,com)、华为

<mirror>
	  <id>aliyunmaven</id>
	  <mirrorOf>*</mirrorOf>
	  <name>aliyun public repository</name>
	  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

jdk版本(默认情况下,使用创建maven项目是,jdk版本默认是1.5版本)

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

5、maven的仓库

  • 1)存储内容---jar包
  • 2)本地库和远程库
  • 3)本地库:当前所使用的电脑中的路径
  • 4)远程库:中央库、镜像库、私服
    • A、中央库:maven世界下的中心仓库,全世界公用
    • B、镜像库:是中央库的副本,为了提高下载速度,使用国内的镜像库(阿里云、华为云)
    • C、私服:局域网内的路径

6、使用maven工具,那么遵守工具的一些规则

  • 1)创建项目时,项目的目录规则 

  • 2)pom.xml文件
    • A、pom---project object model 项目对象模型,对使用maven工具创建的项目进行了相关的定义,是maven项目的核心,在pom.xml文件何如定义?
    • B、可以定义项目的打包方式,相关依赖、当前项目坐标,配置jar包的统一管理、相关插件配置等。
  • 3)坐标

                用于确定jar包在仓库中的唯一位置的组成,坐标的组成(groupId、artifactId、version)

7.maven的使用

  • 1)和其他工具整合使用,比如和eclipse整合、和idea整合。
  • 2)eclipse或者idea负责准备项目的原材料;maven负责项目的结构设计、jar包的管理、项目自动化构建、分工协作。
  • 3)idea工具和maven工具的整合,实际的情况(把maven作为插件向idea中添加),在欢迎界面或者工作区界面找到配置settings----build---build  tools ---maven
  • 4)使用maven创建项目(在idea整合Maven之后使用综合性质的工具创建项目),只是借助了maven,符合maven要求的目录结构,那么项目可以成为maven项目,但实际还是java项目或者是web项目

A、创建java性质的maven项目

使用模板、也可以不适用模板

此设置是当前项目的坐标设置:

groupId:组名,用来设置组名称,为项目实现分组,设置格式:通常是域名倒置的格式,如com.baidu;如果项目较为复杂,实现了分模块设计,那么在groupid中还可以添加整体项目名称,比如com.baidu.xxx(整体项目名称)

artifactId:项目id,设置项目名称,如果项目较为复杂,实现了分模块设计,那么artifactId可以设置模块名称

version:版本号,标志当前项目的开发版本;版本号的组成:大版本号、副版本号、小版本号、希腊字母(单词)

  •  大版本号轻易不会变动,在jdk或者项目的架构发生时才会修改此号
  • 副版本号在项目中扩展了新的功能的时候,会变化此号
  • 小版本号变动频繁,主要是修复bug之后会变化此号
  • 希腊字母:标志当前项目处于哪个阶段,比如开发阶段、测试阶段、稳定版

 A、项目的属性标志<packaging>jar</packaging>

 此配置缺省或者为jar,则是java目

B、创建web性质的maven项目

项目的属性标志:<packaging>war</packaging>

标志位web项目

8、项目的构建操作

  • 1)假设项目原材料已经准备齐全,那么如何实现构建自动化操作

A、构建过程包含有主要的一些步骤:清理、编译、测试、报告、打包、安装、部署

B、对应这些步骤有相关命令

清理:对应命令clean,清除上一次编译的结果,为下一次重新编译做准备

验证项目是否正确(validate)

编译:对应命令compile,将java源程序进行编译

测试:对应命令test,执行test-java中的执行的测试代码

报告:展示测试结果

打包:对应命令package,将项目实现打包处理,java项目生成jar包,web项目生成war包

运行检查:verify

安装:对应命令install,将打成的包复制到本地库

部署:对应命令deploy,将本地库jar包上传到远程仓库或者实现项目的部署

  • 2)生命周期

A、是指构建过程中的步骤实现分组(一个生命周期包含几个操作步骤);

B、maven中生命周期包含三个:清理周期(clean lifecycle)、默认周期(default lifecycle)、站点周期(site lifecycle)

C、当输入相关命令执行构建时,构建不是只执行命令指定的步骤,会从当前命令所在的周期中的的第一个步骤开始执行,,执行到命令指定的步骤

D、还可以使用组合命令(组合生命周期)实现不同周期的一次操作

9、maven的jar包管理

<dependency>

  <groupId>junit</groupId>

  <artifactId>junit</artifactId>

  <version>4.11</version>

</dependency>

 

  • 1)依赖:就是当我们的项目需要其他项目中的程序代码时,我们的项目中需要把其他项目引入,那么对于两个项目的关系来说,我们的项目依赖于被引入的项目;通常在项目中引入其他项目,实际上引入的是项目生成的jar包;所以把jar包看做依赖也可以;
  • 2)如何把jar包引入到当前项目?在当前项目的pom.xml文件中,使用依赖配置来实现。
  • 3)依赖的配置就是一个依赖的坐标配置,组成结构
  • 4)在依赖配置中,决定依赖的作用范围的配置

 <scope></scope>,通过此配置可以决定jar包中的程序在什么位置可以使用

Scope标签的设置值有:compile(默认值)、test、provided

  • 5)jar包管理

A、maven可以实现jar包引入

B、Jar包的传递--依赖的传递:如果乙项目中使用到丙项目生成的jar包,而甲项目又需要使用乙项目生成的jar包,那么maven工具在甲项目引入乙项目依赖时,也会把丙项目的依赖引入到甲项目中,此时在甲项目中会有两个jar包,甲项目的pom.xml文件中不需要添加丙依赖配置,此时是maven的jar包传递操作

C、按照maven的默认情况,丙项目jar包会向甲项目中传递,有些时候,可能在甲项目中不需要把丙传递过来的,要想实现不传递,那么可以考虑scope标签中的值设置或者排除方式

D、版本冲突:同一种jar包不同版本的情况(在项目中jar包的依赖和传递等特点可能造成同一个jar包,出现不同版本),maven工具帮助我们解决不同版本的冲突问题;解决的原则:就近原则、声明原则(是指在当前项目中的pom.xml文件中的依赖的配置顺序决定最终冲突的jar包哪个版本传递,先配置的那个对应的jar包传递)

E、Jar包的统一版本管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树叶只为归根吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值