Maven学习

Maven版本
Snapshot版本:不稳定,处于开发中的版本
Release版本:已稳定的版本

Maven POM:项目对象模型(Project Object Model)
是Maven工程的基本工作单元;是一个xml文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等
执行任务/目标时,maven会在当前目录下找POM,获取对应的配置信息,然后再执行
POM可以找到这些依赖:项目依赖、插件、执行目标、项目构建profile、项目版本、项目开发者列表、相关邮件相关列表
POM文件中都需要project元素和三个必需字段:groupId【项目的唯一ID】、artifactId【当前项目名】、version
具体节点:
project:工程的根标签
modelVersion:模板版本需要设置为4.0
groupId:工程组的标志,且唯一;比如:com.companyname.project-group
artifactId:工程的名称;groupId和artifactId定义了artifact在仓库的位置
version:工程的版本号;
Super POM:父POM是Maven默认的POM

Maven构建的生命周期
验证validate→编译compile→测试Test→包装package→检查verify→安装install→部署deploy
验证validate:验证项目是否正确且所有必须信息是可用的
编辑compile:执行编译;源代码编译
测试Test:使用适当的单元测试框架(例如JUnit)运行测试
包装package:创建JAR/WAR包如在pom.xml中定义提及的包
检查verify:对集成测试的结果进行检查
安装install:安装打包的项目到本地仓库,以供其他项目使用
部署deploy:拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

Maven三个标准的生命周期
clean:项目清理的处理【pre-clean:执行一些需要在clean之前完成的工资;clean:移除所有上一次构建生成的文件;post-clean:执行一些需要在clean之后立刻完成的工作】
default(build):项目部署的处理
site:项目站点文档创建的处理

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

Maven构建配置文件
构建配置文件的类型
项目级:定义在项目的POM文件pom.xml中
用户级:定义在maven的设置xml文件中, (%USER_HOME%/.m2/settings.xml)
全局:定义在全局的设置xml文件中 (%M2_HOME%/conf/settings.xml)

Maven仓库
三种类型
本地仓库:在安装Maven后并不会创建;要第一次执行Maven命令后才会被创建;运行Maven时,任何构件都是从本地仓库获取的,如果本地仓库没有,就尝试在远程仓库拿取下载到本地仓库,然后再使用本地仓库的构件
中央仓库:是由Maven社区提供的仓库;不需要配置,直接由maven社区管理,需要通过网络访问;要浏览该仓库的内容,根据maven提供的url可以获取代码库
远程仓库:如果在中央仓库也找不到,就会停止构件并输出错误信息;为避免此情况,maven提供了远程仓库的概念,也就是开发人员自己定制的仓库,包含了所需要的代码库或其他工程中使用的jar文件

Maven依赖搜索顺序
本地仓库→中央仓库→远程仓库

Maven插件
插件是在pom.xml中使用plugins元素定义的
每个插件可以有多个目标
可以定义阶段,插件会使用它的【phase】元素开始处理
可以通过绑定到插件的目标的方式来配置要执行的任务,echo任务

Maven创建java项目
通过命令创建:mvn archetype:generate “-DgroupId=com.companyname.bank” “-DartifactId=consumerBanking” “-DarchetypeArtifactId=maven-archetype-quickstart” “-DinteractiveMode=false”
-DgroupId:组织名,一般是公司网址的反写+项目名称
-DartifactId:项目名-模块名
-DarchetypeArtifactId:执行ArchetypeId,maven-archetype-quickstart,创建一个简单的java应用
-DinterativeMode:是否使用交互模式

Maven构建&项目测试
切换到目录下。构建项目;执行命令:mvn clean package
执行完毕后,构建了项目并创建了jar文件;
clean:首先清理目标目录
package:打包项目构建输出jar文件
打包好的文件,就会出现在target文件中
然后运行测试用例【切换到target中classes文件中,然后执行命令java 】
最后maven创建项目包

Maven引用外部依赖
pom.xml文件中dependencies 列表中列出了项目所需要的外部依赖项
dependencies里面可以嵌套多个dependency,一个dependency表示一个插件;dependency里面包含groupId、artifactId、version、scope【作用于】、systemPath【路径,${basedir}\具体路径】

Maven项目模板
快速创建java项目:mvn archetype:generate
archetype:也就是原型;是一个Maven插件,一个项目模板;它的任务是根据模板创建一个项目结构
然后根据提示填写相关内容即可

Maven项目文档
修改项目的pom.xml配置 ;不然会报错,版本低




org.apache.maven.plugins
maven-site-plugin
3.3


org.apache.maven.plugins
maven-project-info-reports-plugin
2.7




然后执行命令:mvn site
最后在target文件中生成site文件,点击index.html就是文档

Maven快照(SHAPASHOT)
快照:Maven每次构建都会在远程仓库中检查新的快照

【Maven自动化构建】
有点问题先~ 一直报错

Maven依赖管理
依赖排除:通过exclusion元素;比如:A依赖B;B依赖C;因此A可以标记C为被排除的
依赖可选:通过optional元素;比如:A依赖B;B依赖C;因为B可以标记C为可选的,这样A就可以不再使用C

Maven自动化部署
通常部署的步骤:
将项目代码提交到SVN或代码库
从SVN或代码库下载源码
构建应用
存储构建输出的WAR
从网络上获取文件并部署到生产站点上
更新文档并且更新对应的版本号
修改pom.xml文件来管理自动化发布
重要元素:
SCM:配置SVN的路径,Maven将从该路径下将代码取下来
repository:构建的WAR/JAR文件的位置,或者其他源码构建成功后生产的构件的存储位置
Plugin:配置maven-release-plugin 插件来实现自动部署过程
Maven Release插件
mvn release:clean:清理工作空间;保证最新的发布进程成功进行
mvn release:prepare:发布不成功的情况下,回滚
mvn release:prepare:很多操作
……

Maven Web应用
通过命令创建:mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=trucks -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

As。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值