在pom.xml中的dependencies元素添加dependency(坐标)对应jar就可以了
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
- 保存此文件时会从远程仓库回去该jar
- 坐标查询地址为 https://mvnrepository.com/
依赖范围 scope元素指定范围
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
compile 编译 测试 发布版本 有效 默认 可以省略
provided 在编译 测试 有效打包不会加入 (Servlet api)
test 在 生成jar war不会加入
runtime 在运行时引入 编译不会引入
system 系统范围
依赖传递性 :依赖的坐标引用其他坐标会被传递
当引入jar相同时:
- 路径最近优先:c -> b ->a c依赖b b依赖a c会优先用b的jar
- 路径相同配置最前优先 c->b c->a c依赖b c也依赖a 要先看 b a在c中那个先声明
选择性依赖
- 在被引入的依赖 所依赖的dependency元素中optional =true 就不会依赖dependency 对应jar 到当前项目(不被其他项目所引用的jar设置)
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
<optional>true</optional>
</dependency>
- 没有在被引入的依赖 设置optional 在当前项目中此依赖中 exclusions设置
<dependency>
<groupId>chenjiuxu</groupId>
<artifactId>etWED</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>