Maven项目简介

@MAVEN项目简介

Maven

1.什么是Maven
Maven 就是一个项目管理构建工具,它包含一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑。
在这里插入图片描述
2、Maven仓库类型
(1)本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找

(2)远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。 远程仓库可以在互联网内也可以在局域网内。

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

3.maven工程的认识
  (1)maven工程的目录结构
 在这里插入图片描述
 (2).Maven常用命令
 1.打包:mvn package 将项目打包到target目录下。
 2.安装:mvn install 打包到本地仓库。解决本地多个项目共用某个jar包的问题。
 3.清除:clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。
 4.单元测试:mvn test 执行src/test/java目录下的单元测试类。
 4.Maven中的依赖
 4.1.依赖范围
 maven 项目在不同的阶段引入到classpath中的依赖是不同的。常用依赖范围有四种:
 1.Compile:编译依赖范围,再编译,测试。运行时都需要。比如:log4j(常用日志jar包)
 2.test:测试依赖范围:测试时需要,编译运行湿不需要,比如:junit(常用测试jar包)
 3. runtime: 运行时依赖范围,测试和运行时需要。编译不需要。 通常情况下,runtime都使用compile替代
比如:jdbc驱动jar包
4. provided:已提供依赖范围,编译和测试时需要。运行时不需要。
比如:servlet-api
1.maven工程要导入jar包的坐标,就必须要考虑解决jar冲突

1)解决jar包冲突的方式一:

第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,可以优先进入项目中。

maven导入jar包中的一些概念:

直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包

传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。

2)解决jar包冲突的方式二:

路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。

3)解决jar包冲突的方式三:(推荐使用)

直接排除法:当我们要排除某个jar包下的依赖包,在配置exclusions标签的时候,内部可以不写版本号。因为此时依赖包使用的版本和默认和本jar包一样。
在这里插入图片描述
  2.pom.xml文件中标签的认识

build标签是在maven中添加插件
在这里插入图片描述
  dependencyManagement标签是锁定jar包版本(标签下的jar包没有导入jar包的作用 只是锁住的作用)

对于开发A项目者,若是引用了另一个项目B,则B中pom文件中导入的jar包会传递到A项目中,属于传递依赖,对于A项目开发者若直接导入B项目中导入的jar包 ,对于A来说,这是直接依赖,

那么直接依赖的jar包就会把我们B项目中传递过去的jar包覆盖掉,

为了防止该种情况出现,可以把B项目中主要的jar包锁住,那么其他依赖该项目的项目中。即使有同名jar包直接依赖,也无法覆盖。

在这里插入图片描述
  统一管理jar包的版本
  在这里插入图片描述

学习借鉴: https://www.cnblogs.com/nje19951205/p/17151659.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值