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)个人的工程需要依赖其他项目,但是又不想使用所依赖的项目中已经依赖的依赖,主动断开依赖传递的连接
对外隐藏(可选依赖)+主动断开(排出依赖) 二者对应的主体不同,注意区分
-
对外隐藏(可选依赖):个人不想让其他项目使用自己所依赖的包,对外设置隐藏 -
主动断开(排出依赖):个人项目引用其他依赖包或者项目时,为了避免版本冲突也好、不想使用所依赖包的依赖包,所以主动断开依赖度的传递性
pom文件内部【依赖的作用范围】
下图的作用范围为重点:
上图了解即可
仅个人学习的部分总结,若有不妥之处,还望大佬不吝赐教,感谢~
|