目录

  • pom文件内部【结构详解】
  • pom文件内部【依赖管理】
  • 1、依赖传递:
  • 2、依赖传递过程中,版本冲突:
  • 3、依赖传递过程中,对外隐藏+主动断开:
  • pom文件内部【依赖的作用范围】


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文件内部【依赖管理】

项目初始情况:

Maven命令deploy多个依赖模块 maven多层依赖_java

1、依赖传递:

Maven命令deploy多个依赖模块 maven多层依赖_Maven命令deploy多个依赖模块_02


Maven命令deploy多个依赖模块 maven多层依赖_java_03


Maven命令deploy多个依赖模块 maven多层依赖_java_04

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

Maven命令deploy多个依赖模块 maven多层依赖_xml_05

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

Maven命令deploy多个依赖模块 maven多层依赖_maven_06


Maven命令deploy多个依赖模块 maven多层依赖_java_07

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

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

Maven命令deploy多个依赖模块 maven多层依赖_xml_08

Maven命令deploy多个依赖模块 maven多层依赖_maven_09

Maven命令deploy多个依赖模块 maven多层依赖_maven_10

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

Maven命令deploy多个依赖模块 maven多层依赖_xml_11

Maven命令deploy多个依赖模块 maven多层依赖_maven_12

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

  1. 对外隐藏(可选依赖):个人不想让其他项目使用自己所依赖的包,对外设置隐藏
  2. 主动断开(排出依赖):个人项目引用其他依赖包或者项目时,为了避免版本冲突也好、不想使用所依赖包的依赖包,所以主动断开依赖度的传递性

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

Maven命令deploy多个依赖模块 maven多层依赖_maven_13


Maven命令deploy多个依赖模块 maven多层依赖_xml_14


下图的作用范围为重点:

Maven命令deploy多个依赖模块 maven多层依赖_xml_15

Maven命令deploy多个依赖模块 maven多层依赖_java_16

上图了解即可

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