Maven基础知识
2022/2/22 6:23:43
本文主要是介绍Maven基础知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Maven常用命令
# 清理 mvn clean # 编译主程序 mvn compile # 编译测试程序 mvn test-compile # 执行测试 mvn test # 打包 mvn package # 安装 mvn install # 生成站点 mvn site
坐标
在Maven中,由groupid、artifactid、version来唯一确定一个Maven工程。
仓库
仓库分类
- 本地仓库
- 远程仓库
- 私服
- 中央仓库
- 中央仓库镜像
仓库中保存的内容:Maven工程
- Maven自身所需要的插件
- 第三方框架或工具的jar包
- 我们自己开发的Maven工程
依赖
Maven解析依赖信息时会到本地仓库中查找被依赖的jar包。对于我们自己开发的Maven工程,使用mvn install
命令安装后就可以进入仓库。
依赖的范围
- compile
- test
- provided
依赖的范围 | 对主程序是否有效 | 对测试程序是否有效 | 是否参与打包 | 是否参与部署 |
---|---|---|---|---|
compile | 有效 | 有效 | 参与 | 参与 |
test | 无效 | 有效 | 不参与 | 不参与 |
provided | 有效 | 有效 | 不参与 | 不参与 |
compile和provided比较:compile在开发、部署、运行阶段都提供依赖,provided只在开发阶段提供依赖。
依赖具有传递性。非compile范围的依赖不能传递。
依赖排除:使用exclusions排除不需要的jar包。
依赖原则(解决工程之间的jar包冲突)
- 路径最短者优先
- 路径相同时先声明者优先
统一管理jar包的版本
- 在properties标签内使用自定义标签统一声明版本号
- 在需要统一版本的位置,使用
${自定义标签名}
引用声明的版本号
继承
- 创建一个Maven工程作为父工程,打包方式为pom
- 在子工程中声明对父工程的引用
- 由父工程统一管理依赖,子工程添加依赖时无需指定版本
聚合
- 一键安装各个模块工程
- 在总的聚合工程中的pom.xml文件使用
modules
标签配置即可
生命周期
Maven生命周期定义了各个构建环节的执行顺序。
Maven有三套相互独立的生命周期
- Clean Lifecycle:在进行真正的构建之前进行一些清理工作
- Default Lifecycle:构建的核心部分,编译、测试、打包、安装、部署等
- Site Lifecycle:生成项目报告、站点,发布站点
插件和目标
- 生命周期的各个阶段仅仅定义了要执行的任务是什么
- 各个阶段和插件的目标是相对应的
- 相似的目标由特定的插件来完成
自动部署
pom.xml文件
<!-- 配置构建过程中的特殊设置 --> <build> <finalName>web</finalName> <plugins> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.2.3</version> <configuration> <!-- 当前系统中容器的位置 --> <container> <cotainerId></cotainerId> </container> <!-- 端口号 --> <properties> <cargo.servlet.port>8001</cargo.servlet.port> </properties> </configuration> <!-- 插件在什么情况下执行 --> <executions> <execution> <id>cargo-run</id> <phase>install</phase> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
命令mvn deploy
Maven仓库
https://mvnrepository.com/
这篇关于Maven基础知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?