Java基础 - Maven的基础使用

📅 2026/8/27 13:19:48
Java基础 - Maven的基础使用
一、如何在maven仓库中寻找某个依赖的合适版本maven中央仓库地址Maven Repository: Search/Browse/Explore比如我们要搜索下面这个依赖的maven版本dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-starter/artifactId version1.0.0-M6.1/version /dependency1. 打开网址搜索框输入artifactId即spring-ai-alibaba-starter2. 观察我们要搜索的依赖groupId是com.alibaba.cloud.ai观察到第1个与我们的groupId和artifactId完全对应我们点击进去然后点击Versions,看到不同版本。选择USAGES较多的那个尝试和我们的项目兼容。点击进去。3. 可以看到下面的maven依赖直接复制到我们项目的pom文件里即可。可以观察到有个Scope 作用范围按钮二、Maven的scope范围选择标准是什么1. compile默认适用标准业务代码编译、运行都要直接使用该类需要打进最终 jar/war 包可传递依赖。示例spring-ai-mcp-client-starter、spring-core、工具类包。2. test适用标准只单元测试 / 集成测试代码使用业务主代码完全不引用不打包、不传递。示例junit、mockito、spring-test。3. provided适用标准编译时需要 API但是部署环境 / 容器运行时已经自带该包不能打进包防止冲突。示例servlet-api、tomcat 自带包。4. runtime适用标准业务代码只通过接口调用编译时不需要该实现类只有运行时才加载需要打进包。示例mysql 驱动、jdbc 实现包。快速判断流程业务代码import直接使用 → compile仅测试代码使用 → test编译要用、部署环境自带→ provided编译不用、运行必须加载实现 → runtime面试精简总结根据依赖在【编译、运行、环境是否自带、是否打入产物】四个维度判断业务直接编码引用用 compile仅测试使用用 test容器已内置用 provided仅运行时加载实现用 runtime。