直白点来说:
A. dependency引入的东西是你代码编译/运行时所需要的东西,项目打包后这些东西基本都在。
如:JSON工具包GSON(com.google.code.gson),不仅开发时要用,项目运行时也要用,就需要打包进项目中;
而像 javax.servlet-api 这种由容器实现的接口,运行时调用的是容器的具体实现,开发时它的引入范围应该是编译(<scope>provided</scope>),不会被打包进项目。

B. plugin引入的东西,如它的字面意思一样,是插件,作为开发/编译/打包时的一种辅助工具,一般不会打包进项目中。
如:使用 maven-source-plugin 插件将API包的源码一起打包,方便发布至Maven仓库,而这个插件不会在打包后的项目中出现

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐