Maven基础

网友投稿 255 2022-09-06

Maven基础

文章目录

​​Maven的基本使用​​

​​Maven常用命令​​​​Maven生命周期​​

​​IDEA配置Maven​​

​​配置Maven环境​​​​Maven坐标​​​​IDEA 创建 Maven项目​​​​IDEA 导入 Maven项目​​​​配置 Maven-Helper 插件​​

​​依赖管理​​

​​使用坐标导入jar包​​​​依赖范围​​

Maven的基本使用

Maven常用命令

compile :编译clean:清理test:测试package:打包install:安装

命令演示:

在 ​​资料\代码\maven-project​​ 提供了一个使用Maven构建的项目,项目结构如下:

而我们使用上面命令需要在磁盘上进入到项目的 ​​pom.xml​​ 目录下,打开命令提示符

编译命令演示:

compile :编译

执行上述命令可以看到:

从阿里云下载编译需要的插件的jar包,在本地仓库也能看到下载好的插件在项目下会生成一个​​target​​ 目录

同时在项目下会出现一个 ​​target​​ 目录,编译后的字节码文件就放在该目录下

清理命令演示:

mvn clean

执行上述命令可以看到

从阿里云下载清理需要的插件jar包删除项目下的​​target​​ 目录

打包命令演示:

mvn package

执行上述命令可以看到:

从阿里云下载打包需要的插件jar包在项目的​​terget​​ 目录下有一个jar包(将当前项 目打成的jar包)

测试命令演示:

mvn test

该命令会执行所有的测试代码。执行上述命令效果如下

安装命令演示:

mvn install

该命令会将当前项目打成jar包,并安装到本地仓库。执行完上述命令后到本地仓库查看结果如下:

Maven生命周期

Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

Maven 对项目构建的生命周期划分为3套:

同一套生命周期内,执行后边的命令,前面的所有命令会自动执行。例如默认(default)生命周期如下:

注意是同一套,两套之间相互不打扰

当我们执行 ​​install​​​(安装)命令时,它会先执行 ​​compile​​​命令,再执行 ​​test ​​​ 命令,再执行 ​​package​​​ 命令,最后执行 ​​install​​ 命令。

当我们执行 ​​package​​​ (打包)命令时,它会先执行 ​​compile​​​ 命令,再执行 ​​test​​​ 命令,最后执行 ​​package​​ 命令。

默认的生命周期也有对应的很多命令,其他的一般都不会使用,我们只关注常用的:

IDEA配置Maven

配置Maven环境

Maven坐标

什么是坐标?

Maven 中的坐标是资源的唯一标识使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

groupId:定义当前Maven项目隶属组织名称(通常是域名反写)artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)version:定义当前项目版本号

例如:

注意:

上面所说的资源可以是插件、依赖、当前项目。我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

IDEA 创建 Maven项目

IDEA 导入 Maven项目

配置 Maven-Helper 插件

依赖管理

使用坐标导入jar包

使用坐标引入jar包的步骤:

在项目的 pom.xml 中编写 标签在 标签中 使用 引入坐标定义坐标的 groupId,artifactId,version

注意:具体的坐标我们可以到如下网站进行搜索​​pom.xml 中 按 alt + insert,选择 Dependency

在弹出的面板中搜索对应坐标,然后双击选中对应坐标

自动导入设置:

选择 IDEA中 File --> Settings

在弹出的面板中找到 Build Tools

依赖范围

通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境。

编译环境:也就是对在src下main中的代码都有效 测试环境:也就是对在src下test中的代码都有效

如下图所示给 ​​junit​​​ 依赖通过 ​​scope​​ 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。

那么 ​​scope​​ 都可以有哪些取值呢?

依赖范围

编译classpath

测试classpath

运行classpath

例子

compile

Y

Y

Y

logback

test

-

Y

-

Junit

provided

Y

Y

-

servlet-api

runtime

-

Y

Y

jdbc驱动

system

Y

Y

-

存储在本地的jar包

compile :作用于编译环境、测试环境、运行环境。test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值provided :作用于编译环境、测试环境。​​servlet-api​​​ ,在使用它时,必须将​​scope​​ 设置为该值,不然运行时就会报错runtime : 作用于测试环境、运行环境。jdbc驱动一般将​​scope​​ 设置为该值,当然不设置也没有任何问题

注意:如果引入坐标不指定​​scope​​ 标签时,默认就是 compile 值。以后大部分jar包都是使用默认值。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:首席营销官:3年还完6个亿,罗永浩骗了所有人!
下一篇:营销最前线:“中国最牛校企”倒了:负债3000亿,内斗堪比电视剧!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~