使用可選依賴
將依賴坐標的
<project>
...
<dependencies>
<!-- declare the dependency to be set as optional -->
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional> <!-- value will be true or false only -->
</dependency>
</dependencies>
</project>
使用optional依賴可以節省空間和內存
使用場景
當編寫一個類庫時,比如projectX,可能會包含很多功能,但是依賴projectX的項目projectA只會使用其中一部分功能,對於沒有用到的功能,projectA不希望依賴無用功能的jar包。這時就需要projectX使用optional依賴。
projectX -> projectY(optional)
projectA -> projectX
如果projectA沒有使用projectY相關的類,則projectY不會被打包到war包或fatjar。
如果projectA要使用所有的功能,則需要在自己的項目中顯式的引入相關依賴。