maven

maven是什么?

一个 Maven 工程有约定的目录结构,约定的目录结构对于 Maven 实现自动化构建而言是必不可少的一环,就拿自动编译来说,Maven 必须 能找到 Java 源文件,下一步才能编译,而编译之后也必须有一个准确的位置保持编译得到的字节码文件。 我们在开发中如果需要让第三方工具或框架知道我们自己创建的资源在哪,那么基本上就是两种方式:

通过配置的形式明确告诉它

基于第三方工具或框架的约定 Maven 对工程目录结构的要求

其实学习 Maven 就是学这个文件怎么配置,各个配置有什么用。

maven坐标

Maven中的坐标使用三个『向量』在『Maven的仓库』中唯一的定位到一个『jar』包。

groupId:公司或组织的 id,即公司或组织域名的倒序,通常也会加上项目名称

例如:groupId:com.javatv.maven

artifactId:一个项目或者是项目中的一个模块的 id,即模块的名称,将来作为 Maven 工程的工程名

例如:artifactId:auth

version:版本号

例如:version:1.0.0

提示:坐标和仓库中 jar 包的存储路径之间的对应关系,如下

<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
//上面坐标对应的jar包在maven本地仓库中的位置
//Maven本地仓库根目录\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar

IDEA导入MAVEN项目

依赖配置

依赖传递

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立的依赖关系 ——————(绿色方框内)

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源——————(橙色方框)

排除依赖

排除依赖————主动断开依赖的资源,被排除的资源无需指定版本

用标签 <exclusions>

<exclusion>

</exclusion>

</exclusions>

 <exclusions>
            <exclusion>  
              <groupId>  所要排除的依赖  </groupId>
              <artifactId>  所要排除的依赖  </artifactId>
            </exclusion>
</exclusions>

例:

项目A依赖项目B,项目B依赖junit

排除junit依赖

依赖范围

生命周期

注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。

【例】

当运行package时,前面的compile和test都会运行

当运行install时,前面的compile和test和package都会运行,但clean不会运行

因为clean和其余四个不在一套生命周期中

执行指定生命周期的两种方式

在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行

在命令行中,通过命令执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值