maven初步认识,最简单的maven

是什么?

   项目构件,管理工具,用来简单描述项目信息。
   最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。
   maven简单意义来说能够让我们快速简单的把项目打成jar或者war包

安装

  • 下载mavn并解压
  • 配置环境变量
    1.新建变量 M2_HOME,值为maven解压路径
    在这里插入图片描述
    2.在path中添加 %M2_HOME%\bin
    在这里插入图片描述

生命周期

  maven简单的生命周期如下图所示

在这里插入图片描述

  任何一步出现问题都无法继续下一步。

目录结构

javase目录结构


用maven生成一个简单的javase项目,目录结构如下图所示


main目录放的是项目主要的源码;test放的是测试代码,在src同级目录下放的是maven的配置文件prom.xml。
javase项目目录结构

生成简单的javase项目
在这里插入图片描述
目录结构如下:
在这里插入图片描述
你会发现少了放java代码的文件,需要在main文件夹下创建java文件夹,web-inf补充web.xml等

坐标

一个maven工程可以打包成jar、war、pom等形式,但是它们都是拥有上述三个坐标的。我们在项目过程中导入的jar包就是通过上述坐标值唯一确定的
在这里插入图片描述
所谓的坐标就是

  • groupId:通常是公司网址反写,项目名
  • artifactId:项目名或者模块名
  • version:版本号

依赖传递

  • 依赖范围

运行项目所需要的依赖包可以在prom.xml文件中配置
在这里插入图片描述
g,a,v就不做说明了,scope指的是依赖范围,决定依赖是否跟着你的项目一起打包
依赖范围 ——编译时依赖——测试时依赖——运行时依赖——是否打入包
compile————√——————√————————√——————√
provided————√——————√————————√——————×
test——————×——————√————————×——————×
runtime———— × ——————√————————√—————— √
system———— √ —————— √————————√——————√

  • 依赖传递

    意思就是当你所要运行的jar包依赖另外一个jar包时,maven会把它所依赖的jar都从仓库里面拉下来,但是只有编译时和运行时依赖是传递的。依赖传递就会产生另外一个问题,那就是依赖冲突,意思就是,当你一个包所依赖的包,在另外一个包也是依赖,并且所依赖的版本不一样。
    
  • 依赖冲突

  • 最短路径原则

    当发生冲突的那个依赖包,在不同层级关系下,决定版本的是层级靠上的
    在这里插入图片描述

  • 优先声明
    当发生冲突的那个包,在同一层级结构下,决定版本的是最先声明的
    在这里插入图片描述
    - 依赖排除
    当你不想加载某个包的依赖包的时候可以加上exclusions标签声明
    在这里插入图片描述

仓库

  • 本地仓库:可在maven的配置文件中设置
  • 远程仓库(镜像仓库):开发人员自己定制的仓库
  • 中央仓库:Maven提供的仓库
    依赖拉取顺序:
    本地>远程>中央
    **

常用命令

  • mvn -archetype:模板 -DgruopId=** -DartifactId =** -Dversion=** 创建项目
  • mvn compile 项目编译
  • mvn test 项目测试
  • mvn package 项目打包
  • mvn deploy 发布项目到中央仓库
  • mvn clean 清除项目目录中的生成结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值