maven的认识

一、什么是maven

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

1、maven下载与安装

1.官网下载安装(http://maven.apache.org/download.cgi),选择bin.zip的版本
在这里插入图片描述
2.解压到安装目录
3.配置环境:右击桌面“此电脑”并选择“属性”,选择“高级系统设置”,如图:
在这里插入图片描述
选择“环境变量”,如图:
在这里插入图片描述
将安装路径的bin目录放到path中如图:
在这里插入图片描述
cmd运行:
在这里插入图片描述

2、maven配置镜像

找到安装配置,并在安装位置找到conf目录下的setting.xml文件。
1.修改localRepository标签:修改仓库文件的位置存放
在这里插入图片描述
2.配置阿里云镜像(下载jar会更快):在mirrors标签下添加如下代码:
在这里插入图片描述

3、eclipse中的配置mave

windows -> preferences -> maven设置如图所示:
在这里插入图片描述

4、IDEA中的配置

file -> setting -> maven :设置与上面相似。

二、maven简单例子的使用

打开win+r 输入cmd。输入:

mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.chinasofti.build -DartifactId=demo

意思就是在你当前运行目录建立一个组名为“com.chinasofti.build -DartifactId”的”demo“项目。
等运行好,在输入:

mvn clean compile exec:java -Dexec.mainClass="com.chinasofti.build.App"

就会看到”hello world“。

1、例子中的依赖引入

1.1、依赖

依赖是Maven 中最关键的部分,我们使用它的依赖管理。它通过groupId、artifactId、version三个向量定位maven仓库所在的位置。

1.2、依赖范围

在依赖的时候有个scope(默认是compile),一共有六种范围:compile、test、provided、runtime、system 和import。这里列举主要的三种:
在这里插入图片描述

1.3、依赖的传递性

传递性:A依赖B,B依赖C,那么A依赖C,这就是依赖性。
在这里插入图片描述

1.4、依赖的原则

最短路径优先原则:同时依赖的那个有不同版本时,选择路径最短的那个。
路径相同先声明原则:如果A依赖B和C,B和C没有依赖,但都有依赖D并且都版本不一致,那么A会引入D。
在这里插入图片描述

1.5、依赖的排除

我们在当前工程中引入了A 的依赖,而A 同时有对B 的依赖,根据传递性我们知道,在当前工程中会自动引入对B 的依赖。其中B 可能是一个不稳定的版本,或者对当前的工程存在着不良的影响 。这时我们就可以在引入对A 依赖的同时排除对B 的依赖。
在这里插入图片描述

2、生命周期

maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。goal是maven里定义任务的最小单元,相当于ant里的target。
可以理解maven为一个插件的容器,每个插件绑定到某个goal执行
在这里插入图片描述
在这里插入图片描述
详情生命周期https://www.cnblogs.com/ysocean/p/7456179.html

3、mave的继承

3.1、通过dependenciesManagement与dependencies继承

父maven项目中通过dependenciesManagement中定义公共依赖项

子maven项目中通过dependencies中定义公共依赖项
在这里插入图片描述
在这里插入图片描述

三、其他

1.1、常用命令

alias mvni='mvn -T 1C clean install -Dmaven.test.skip=true'
alias mvnp='mvn -T 1C clean package -Dmaven.test.skip=true'
alias mvnv='mvn versions:set -DgenerateBackupPoms=false'
alias mvnd='mvn -T 1C clean deploy -Dmaven.test.skip=true'
alias mvndd='mvn -T 1C clean deploy -P dev  -Dmaven.test.skip=true'
alias mvndo='mvn -T 1C clean deploy -P online -Dmaven.test.skip=true'
alias mvnc='mvn -T 1C clean eclipse:clean idea:clean'

四、总结

使用maven可以快速添加依赖,有利于jar、插件等管理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值