依赖:
1、依赖的范围、依赖的有效性
compile(默认)(编译范围) test(测试范围) provided(已提供范围)
2、依赖排除 :exclusion
A.jar ->B.jar
当我们通过maven引入A.jar时,会自动引入B.jar
A.jar(x.java ,y.java,z.java) B.jar(p.java c.java i.java)
A.jar和B.jar之间的 依赖的本质:z.java ->c.java
<!-- 排除依赖 beans -->
<exclusions>
<exclusion>
<groupId>xx.xx</groupId>
<artifactId>Xxx</artifactId>
</exclusion>
</exclusions>
依赖:
A、commons-fileupload.jar commons-io.jar :虽然我们实际开发时,认为二者jar必须关联,但是maven可能不这么认为。
B、如果X.jar 依赖于Y.jar,但是在引入X.jar之前 已经存在了Y.jar,则maven不会再在 引入X.jar时 引入Y.jar
3、 依赖的传递性
A.jar-B.jar->C.jar
要使 A.jar ->C.jar:当且仅当 B.jar 依赖于C.jar的范围是compile
多个maven项目(模块)之间如何 依赖: p项目 依赖于->q项目
- p项目 install 到本地仓库
- q项目 添加 依赖:
<!-- 依赖于Hello项目 -->
<dependency>
<groupId>org.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
4、依赖原则:为了防止冲突
a.路径最短优先原则
b.路径长度相同:
i.在同一个pom.xml文件中有2个相同的依赖(覆盖):
后面声明的依赖 会覆盖前面声明的依赖 (严禁使用本情况,严禁在同一个pom中声明2个版本不同的依赖)
ii.如果是不同的 pom.xml中有2个相同的依赖(优先):则先声明的依赖 ,会覆盖后声明的依赖
(JDK只能够识别 source folder中的源码)
在Eclipse中创建maven工程:
1.配置maven:
配置maven版本
配置本地仓库 : 设置settings.xml
在eclipse中编写完pom.xml依赖后,需要maven-update project
maven生命周期:
生命周期和构建的关系:
生命周期中的顺序:a b c d e
当我们执行c命令,则实际执行的是 a b c
生命周期包含的阶段:3个阶段
clean lifecycle :清理
pre-clean clean post-clearn
default lifecycle :默认(常用)
site lifecycle:站点
pre-site site post-site site-deploy
通过maven统一jdk版本
<profiles>
<profile>
<id>jdk-18</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<!-- 统一其他版本 通过 ${maven.compiler.source} 取值 -->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
配置全局配置版本信息
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 统一版本 -->
<project.junit.version>4.0</lanqiao.World.junit.version>
</properties>