概述

Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具

 

构建过程主要环节

1、清理:删除上一次构建的结果,为下一次构建做好准备

2、编译:.java 源程序编译成 .class 字节码文件

3、测试:运行提前准备好的测试程序

4、报告:针对测试的结果生成一个全面的信息

5、打包

(1)Java工程:jar包

(2)Web工程:war包

6、安装:把一个 Maven 工程经过打包操作,生成的 jar 包或 war 包存入 Maven 仓库

7、部署

(1)jar 包:把 jar 包部署到 Nexus 私服服务器上

(2)war 包:借助相关 Maven 插件(如 cargo),将 war 包部署到 Tomcat 服务器上

 

依赖管理解决的具体问题

1、jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地

2、jar 包之间的依赖:通过依赖的传递性自动完成

3、jar 包之间的冲突:通过对依赖的配置进行调整,让某些 jar 包不会被导入

 

生命周期

1、三个标准生命周期,每一个环节对应构建过程中的一个操作

2、作用:自动化构建过程,

3、Clean 生命周期:清理相关操作

生命周期阶段 描述
pre-clean 执行一些需要在 clean 之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在 clean 之后立刻完成的工作

4、Default (Build) 生命周期:用于构建应用

生命周期阶段 描述
validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程
initialize(初始化) 初始化构建状态,比如设置属性值
generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码
process-sources(处理源代码) 处理源代码,比如说,过滤任意值
generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件
process-resources (处理资源文件) 复制和处理资源到目标目录,准备打包阶段
compile(编译) 编译项目 main 目录下的源代码
process-classes(处理类文件) 处理编译生成的文件,比如说对 Java class 文件做字节码改善优化
generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码
process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值
generate-test-resources(生成测试资源文件) 为测试创建资源文件
process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录
test-compile(编译测试源码) 编译测试源代码到测试目标目录
process-test-classes(处理测试类文件) 处理测试源码编译生成的文件
test(测试) 使用合适的单元测试框架运行测试(Juint 是其中之一),测试代码不会被打包 / 部署
prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备
package(打包) 将编译后的代码打包成可分发格式的文件,比如 JAR、WAR、EAR 文件
pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境
integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中
post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境
verify (验证) 运行任意的检查来验证项目包有效且达到质量标准
install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖
deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享

5、Site 生命周期:创建新的报告文档、部署站点等

生命周期阶段 描述
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上

 

插件、目标

1、插件

(1)Maven 核心程序仅仅负责宏观调度,不做具体工作

(2)Maven 插件完成具体工作

2、目标

(1)一个插件可以对应多个目标

(2)每一个目标都和生命周期中的某一个环节对应

 

仓库

1、本地仓库:在当前电脑上,为电脑上所有 Maven 工程服务

2、远程仓库:需要联网

(1)局域网:搭建的 Maven 私服,例如,使用 Nexus 技术

(2)中央仓库

(3)镜像仓库:内容和中央仓库保持一致,但是能够分担中央仓库的负载,同时让用户能够就近访问提高下载速度,例如:Nexus aliyun

3、建议:中央仓库、阿里云镜像不要混用,否则 jar 包来源相互冲突

4、搜索 Maven 依赖信息:https://mvnrepository.com/

posted @   半条咸鱼  阅读(25)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示