使用maven package打包时会将本项目的所有依赖都打进去,这里提供两种去掉直接依赖和简介依赖的方式。
如果本项目依赖了A和B,B依赖了C。
- 本项目->A
- 本项目->B->C
去掉直接依赖
当打包时如果不希望将A打进去,可以在依赖项中加入属性,值为provided,这样可以保证这个依赖只在编译和测试中添加,打包时不添加。
```xml
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.0.1</version>
<scope>provided</scope>
</dependency>
```
去掉间接依赖
如果想将间接依赖C去掉,可以在B的pom文件中在C的依赖项中添加字段,值为true。这样在本项目中打包时就不会添加C。
```xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
<optional>true</optional>
</dependency>
```