Maven学习
相关概念
依赖配置:
依赖指当前项目运行需要的 jar,一个项目可以设置多个依赖
依赖传递:
直接依赖
在当前项目中通过依赖配置建立的依赖关系
间接依赖
当前项目直接依赖资源(比如A), 而A又依赖资源(B),可以说当前项目间接依赖资
源(B)
依赖冲突
1.路径优先∶当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级
越高
2.声明优先∶当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
3.特殊优先∶当同级配置了相同资源的不同版本,后配置的覆盖先配置的
可选依赖
可选依赖指对外隐藏当前所依赖的资源
<optional>true</optional>
默认是 false , 即不隐藏,设置为 true , 即隐藏。
排除依赖
排除依赖指主动断开依赖的资源, 被排除的资源无需指定版本
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
依赖范围
依赖的 jar 默认情况可以在任何地方使用, 通过 scope 标签设定其作用范围
<scope>compile</scope>
Maven 项目构建生命周期
生命周期的 3 大阶段
1、 clean∶清理工作
2、default∶核心工作,例如编译,测试,打包,部署等
3、site∶产生报告,发布站点等
maven 插件
插件与生命周期内的某个阶段绑定,在执行到对应生命周期时, 由对应插件来完成任务/功能
maven插件: http://maven.apache.org/plugins/index.html
<!--在 build 时,自定义的插件 -->
<build>
<plugins>
<plugin>
<!-- 插件坐标 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<!-- 对主程序输出源码打包 -->
<goal>jar</goal>
<!-- 对测试程序输出源码打包 -->
<goal>test-jar</goal>
</goals>
<!-- 在 generate-test-resources 阶段执行
根据maven生命周期-->
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏