天天看點

maven中dependency和plugin差別

直白點來說:

A. dependency引入的東西是你代碼編譯/運作時所需要的東西,項目打包後這些東西基本都在。

如:JSON工具包GSON(com.google.code.gson),不僅開發時要用,項目運作時也要用,就需要打包進項目中;

而像 javax.servlet-api 這種由容器實作的接口,運作時調用的是容器的具體實作,開發時它的引入範圍應該是編譯(<scope>provided</scope>),不會被打包進項目。

B. plugin引入的東西,如它的字面意思一樣,是插件,作為開發/編譯/打包時的一種輔助工具,一般不會打包進項目中。

如:使用 maven-source-plugin 插件将API包的源碼一起打包,友善釋出至Maven倉庫,而這個插件不會在打包後的項目中出現