Maven学习

Maven是用来构建项目,管理依赖的

Maven项目结构

main主要写实现代码,test是写测试代码不会被打包

resource放静态资源,webapp存放web开发内容。

pom文件包括项目版本号内容以及相关配置以及后续依赖

Maven依赖导入,就是直接写入一个dependcies节点,在节点再次定义dependency节点,包括版本信息以及包名与组信息

Maven依赖管理本质由Maven进行Jar包导入,通常依赖都存在于中央仓库和远程仓库,当本地导入是就将其下载引入本地仓库

依赖其他坐标

Scope是依赖作用域

如果需要的依赖没有上传远程仓库,可以通过将<scope>设为system,并加上<systempath>设为在文件系统中都是路径,指定系统内的Jar包进行使用。

如果要将自己的项目要打包供他人使用,需要使用Maven的install,会将工程打包存入本地仓,如果本项目中有相关的依赖,也会传递。

如果不希望某个依赖直接传递就可以添加<optional>标签,并设置为真,此时该依赖就不会直接传递,而是需要选择

如果引入的依赖导致传递的依赖没有使用可选标签,此时可以使用<exclusion>标签内部添上项目名称与组名就能排除。

Maven项目可以继承,创建子项目,父项目会自动标记,同时父亲项目的所有依赖可以直接被继承

父项目不只可以引入依赖,也可以只对依赖进行版本管理,使用<dependencyManagement>坐标

此时子项目并不能使用其中的依赖,需要使用时需要在自己的pom文件中引入,但是无需填版本信息。这样子项目无需引入父项目的所有依赖,更加灵活,同时统一管理,让版本冲突减少。

Maven生命周期命令

同时还有Test命令,作用是执行所有Test文件下的测试

package就是将项目打成Jar包共其他工程使用,打包前一定会执行test命令,如果测试不通过打包失败,可以手动跳过,但是不能直接运行,没有主清单,相关依赖也没有引入

可以引入插件,主类需要修改为自己的主类

让其package后的jar可以使用,引入相关依赖与主清单文件

由于父项目管理依赖,通常打包方式为pom,不允许打成jar包,父项目执行的所有操作都会作用在子项目上

相关推荐
今天的砖头有点烫手啊18 分钟前
Java IO/NIO/AIO 演进:从 BIO 到 Netty 的底层逻辑
java·jvm·nio
谢亮_vipxieliang1 小时前
Java 21 新特性实战:Record、Sealed、模式匹配
java·开发语言
霸道流氓气质1 小时前
LLM 应用限流与熔断机制完全指南:从多层防护架构到Java生产级弹性实战
java·开发语言·架构
不会就选b1 小时前
算法日常・每日刷题--<动态规划>1
java·数据结构·算法
晚安code1 小时前
JVM 内存结构入门:程序计数器、虚拟机栈、本地方法栈与堆的溢出诊断
java·jvm
自强的小白2 小时前
Spring事务失效的场景
java·spring
小蒜学长2 小时前
基于SpringBoot+Vue的小学数学智能出题系统(代码+数据库+LW)
java·数据库·spring boot·后端·智能出题系统
不灭的黄金瞳1232 小时前
Java继承与多态
java·intellij-idea
71-32 小时前
MySQL密码重置
数据库·笔记·学习·mysql
我命由我123452 小时前
Photoshop - Photoshop 快速共享作品
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop