1. 程式人生 > >maven-assembly打包時去掉直接和間接依賴

maven-assembly打包時去掉直接和間接依賴

使用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>
```