【maven工程的pom.xml文件内部结构详解+maven工程的多层次依赖管理】

pom文件内部【结构详解】

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <!--指定pom模型版本-->
  <modelVersion>4.0.0</modelVersion>
  <!--打包方式 web工程 打包为war;java工程打包为jar-->
  <packaging>war</packaging>

  <!--本项目名称-->
  <name>java03</name>
  
  <!--组织id-->
  <groupId>com.itheima</groupId>
  <!--项目id-->
  <artifactId>java03</artifactId>
  <!--版本号  release(完成版本)  snapshot(开发版本)-->
  <version>1.0</version>

<!--设置当前工程所有依赖-->
  <dependencies>
    <!--设置具体的依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>
  </dependencies>

  <!--构建-->
  <build>
    <!--设置插件-->
    <plugins>
      <!--具体的插件配置-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
    </plugins>
  </build>

</project>

pom文件内部【依赖管理】

项目初始情况:
在这里插入图片描述

1、依赖传递:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、依赖传递过程中,版本冲突:

在这里插入图片描述

从上图可以看出,项目02依赖的log4j版本是1.2.13,并非项目03的1.2.14

在这里插入图片描述
在这里插入图片描述

3、依赖传递过程中,对外隐藏+主动断开:

(1)因被其他项目依赖的工程,又不想让其他项目看见自己使用的依赖包,所以在自己的工程中设置【对外隐藏】在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)个人的工程需要依赖其他项目,但是又不想使用所依赖的项目中已经依赖的依赖,主动断开依赖传递的连接
在这里插入图片描述

在这里插入图片描述

对外隐藏(可选依赖)+主动断开(排出依赖)
二者对应的主体不同,注意区分

  1. 对外隐藏(可选依赖):个人不想让其他项目使用自己所依赖的包,对外设置隐藏

  2. 主动断开(排出依赖):个人项目引用其他依赖包或者项目时,为了避免版本冲突也好、不想使用所依赖包的依赖包,所以主动断开依赖度的传递性

pom文件内部【依赖的作用范围】

在这里插入图片描述
在这里插入图片描述
下图的作用范围为重点:
在这里插入图片描述

在这里插入图片描述

上图了解即可

仅个人学习的部分总结,若有不妥之处,还望大佬不吝赐教,感谢~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值