Maven 最全教程,看了必懂,99% 的人都收藏了。。(2)

简介: Maven 最全教程,看了必懂,99% 的人都收藏了。。(2)

五、仓库和坐标

① pom.xml:

Project Object Model 项目对象模型。它是maven的核心配置文件,所有的构建的配置都在这里设置。


② 坐标:

使用下面的三个向量在仓库中唯一的定位一个maven工程

image.png

③ maven工程的坐标与仓库中路径的关系:

image.png

maven坐标和仓库对应的映射关系:[groupId][artifactId][version][artifactId]-[version].jar


去本地仓库看一下此目录:org\springframework\spring-core\4.3.4.RELEASE\spring-core-4.3.4.RELEASE.jar


果然是完全对应的(默认仓库地址上面说过了哦,不要说不知道在哪,没事下面我们再说一下仓库)


④ 仓库


仓库的分类:


1、本地仓库: 当前电脑上的仓库,路径上已经说过了哦


2、远程仓库:


私服:搭建在局域网中,一般公司都会有私服,私服一般使用nexus来搭建。具体搭建过程可以查询其他资料

中央仓库:架设在Internet上,像刚才的springframework



六、依赖

① maven解析依赖信息时会到本地仓库中取查找被依赖的jar包


对于本地仓库中没有的会去中央仓库去查找maven坐标来获取jar包,获取到jar之后会下载到本地仓库

对于中央仓库也找不到依赖的jar包的时候,就会编译失败了

② 如果依赖的是自己或者团队开发的maven工程,需要先使用install命令把被依赖的maven工程的jar包导入到本地仓库中


举例:现在我再创建第二个maven工程HelloFriend,其中用到了第一个Hello工程里类的sayHello(String name)方法。我们在给HelloFriend项目使用 mvn compile命令进行编译的时候,会提示缺少依赖Hello的jar包。怎么办呢?


到第一个maven工程中执行 mvn install后,你再去看一下本地仓库,你会发现有了Hello项目的jar包。一旦本地仓库有了依赖的maven工程的jar包后,你再到HelloFriend项目中使用 mvn compile命令的时候,可以成功编译


③ 依赖范围

image.png

scope就是依赖的范围


1、compile, 默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。


2、provided, 只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 。如servlet.jar。


3、runtime, 只在运行时使用,如JDBC驱动,适用运行和测试阶段。


4、test, 只在测试时使用,用于编译和运行测试代码。不会随项目发布。


5、system, 类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。


七、生命周期

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:


① Clean Lifecycle 在进行真正的构建之前进行一些清理工作。 Clean生命周期一共包含了三个阶段:


pre-clean 执行一些需要在clean之前完成的工作

clean 移除所有上一次构建生成的文件

post-clean 执行一些需要在clean之后立刻完成的工作

② Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。


validate

generate-sources

process-sources

generate-resources

process-resources 复制并处理资源文件,至目标目录,准备打包

compile 编译项目的源代码

process-classes

generate-test-sources

process-test-sources

generate-test-resources

process-test-resources 复制并处理资源文件,至目标测试目录

test-compile 编译测试源代码

process-test-classes

test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署

prepare-package

package 接受编译好的代码,打包成可发布的格式,如 JAR

pre-integration-test

integration-test

post-integration-test

verify

install 将包安装至本地仓库,以让其它项目依赖。

deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享

那我们在Hello的项目中执行 mvn install 命令,通过日志看看中间经历了什么?


image.png


通过日志我们发现,其实执行mvn install,其中已经执行了compile 和 test 。


总结: 不论你要执行生命周期的哪一个阶段,maven都是从这个生命周期的开始执行


插件: 每个阶段都有插件(plugin),看上面标红的。插件的职责就是执行它对应的命令。


③ Site Lifecycle 生成项目报告,站点,发布站点。


pre-site 执行一些需要在生成站点文档之前完成的工作

site 生成项目的站点文档

post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备

site-deploy 将生成的站点文档部署到特定的服务器上


相关文章
|
Java 应用服务中间件 程序员
Maven教程--下(包括手动实现)
Maven教程--下(包括手动实现)
229 0
|
Web App开发 Java 测试技术
《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程)
【2月更文挑战第13天】《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程) 上一篇文章,宏哥已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中给小伙伴们 或者童鞋们演示一下。
316 1
|
2月前
|
NoSQL Java 网络安全
RedisFX Maven 使用教程
RedisFX 是基于 JavaFX 的 Redis 图形化管理工具,支持 SSH/SSL、Cluster 与 Sentinel 模式,提供多种数据类型操作。通过 Maven 集成,无需安装,版本可控,轻松嵌入 Java 项目,提升开发效率。需 JDK21+ 环境。
RedisFX Maven 使用教程
|
Java 应用服务中间件 Maven
idea配置本地maven保姆级教程
idea配置本地maven保姆级教程
2796 0
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
Java Linux Maven
Maven下载与安装详细教程
Maven下载与安装详细教程
489 0
|
Java Maven Spring
【操作宝典】IntelliJ IDEA新建maven项目详细教程
【操作宝典】IntelliJ IDEA新建maven项目详细教程
846 1
|
存储 Java Apache
【maven】maven下载、安装与配置详细教程
【maven】maven下载、安装与配置详细教程
5146 1
|
前端开发 Java Maven
【前端学java】全网最详细的maven安装与IDEA集成教程!
【8月更文挑战第12天】全网最详细的maven安装与IDEA集成教程!
449 2
【前端学java】全网最详细的maven安装与IDEA集成教程!
|
XML Java 测试技术
maven教程(4)
maven教程(4)
159 1

推荐镜像

更多