Maven

本文详细介绍了Maven的概念,包括约定优于配置的原则,版本管理,打包方式以及依赖的传递性和版本冲突解决策略。同时,还讲解了Maven的安装配置,如何创建Java工程、Web工程以及多模块工程,帮助读者全面理解并掌握Maven的使用。
摘要由CSDN通过智能技术生成

1. Maven概念

   Maven是一个项目管理的工具, 对项目中使用的jar进行统一规范的管理, 并能够通过插件的方式进行扩展功能.

1.1 约定优于配置

   约定优于配置就是说: maven中的一些默认配置, 一般情况下不会去改变这些默认配置. 比如, maven有着自己的默认文件目录.如下

1.2 版本问题

  (1) groupId: 团体, 组织名称, 以创建项目的组织名称逆向域名开头, 一般对应着Java的包结构
  (2) artifactId: 项目名称
  (3) version: 项目版本号
    SNAPSHOT:一般用于开发过程,表示不稳定的版本
    LATEST:指某个特定构建的最新发布
    RELEASE:最后一个发布版

1.3 打包方式packaging

  常用的主要两种: jar,打包后输出JAR文件, war,打包后输出web应用

1.4 maven变量

类别 例子
内置属性 $ {basedir}表示项目根目录,即包含pom.xml文件的目录
$ {version}表示项目版本
$ {project.basedir}同$ {basedir}
$ {project.baseUri}表示项目文件地址
$ {maven.build.timestamp}表示项目构件开始时间
setting属性 $ {settings.localRepository }表示本地仓库路径
POM属性 $ {project.build.directory}表示主源码路径
$ {project.build.sourceEncoding}表示主源码的编码格式
$ {project.build.sourceDirectory}表示主源码路径
$ {project.build.finalName}表示输出文件名称
$ {project.version}表示项目版本,与${version}相同
Java系统属性 $ {user.home}表示用户目录
$ {java.version}表示Java版本
环境变量属性 $ {env.JAVA_HOME}表示JAVA_HOME环境变量的值
$ {env.HOME }表示用户目录
上级工程变量 上级工程的pom中的变量用前缀 ${project.parent } 引用。上级工程的版本也可以这样引用: ${parent.version }

2. Maven安装和配置

3. Maven依赖的高级特性

3.1 依赖之间的传递性

  Maven依赖之间会存在一些联系, 工程引用的依赖之间是会相互传递的. 换句话说, 如果有这样的一种场景, 有A , B , C三个maven工程, A, B工程打包到本地仓库中, B工程依赖于A(B中添加了A的jar包), C依赖于B, maven会在C中引入B包的同时, 将A包也会引入C中, maven进行管理. 不需要用户自己去引入. 即A–>B–>C, C中会有A,B两个jar包.

3.2 依赖版本原则

3.2.1 路径最短者优先原则(层次最浅)

  A , B , C三个项目, C依赖于B好A的1.0版本, B依赖A的2.0版本, maven需要解决, C到底依赖A1还是A2,根据路径最短优先的原则, C-A1短语C-B-A2,故C依赖于A的1.0版本.
在这里插入图片描述
  查看依赖的层次结构的关系: mvn dependency:tree –Dverbose

3.2.2 路径相同先声明优先原则

在这里插入图片描述

4. Maven创建

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值