在 Java(尤其是 Maven / Gradle 构建工具) 中,依赖(Dependency) 和 插件(Plugin) 是两个很容易混淆但职责完全不同的概念。下面从定义、作用、使用方式、常见例子几个角度说明区别。
依赖 是你项目运行时或编译时需要用到的第三方代码(jar 包)。
<!-- Maven 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
implementation 'com.google.guava:guava:31.0'
插件 是扩展构建工具能力的程序,用来完成构建、编译、打包、测试、部署等任务。
<!-- Maven 插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.0'
}
| 对比项 | 依赖(Dependency) | 插件(Plugin) |
|---|---|---|
| 作用对象 | 项目代码 | 构建过程 |
| 是否被代码调用 | ✅ 是 | ❌ 否 |
| 是否参与运行 | ✅ 是 | ❌ 一般否 |
| 典型用途 | 使用功能 | 构建功能 |
| 常见例子 | Spring、MyBatis | compiler、surefire、boot |
你吃的是食材(依赖),
但做饭靠的是厨具(插件)。
❌ “插件也是 jar,所以也是依赖”
✅ 插件是特殊 jar,但不属于业务依赖
❌ “没有插件也能构建”
✅ 实际上 Maven/Gradle 内置了默认插件
如果你愿意,我也可以结合 Maven 生命周期 或 Spring Boot 项目结构 再具体讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。