Maven基础

2023-12-13 23:17:28

目录

Maven坐标

坐标简介?

主要组成

Maven依赖管理?

配置依赖?

依赖简介

配置依赖

依赖传递

依赖传递简介?

排除依赖

?依赖范围

生命周期

生命周期简介?

?执行指定生命周期


Maven坐标

坐标简介?

Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。

可以使用坐标来定义项目或引入项目中需要的依赖。

主要组成

groupld 定义当前Maven项目隶属组织名称?

artifactld 定义当前Maven项目名称(通常是模块名称 例如order-service,goods-service)

version 定义当前项目版本号?

Maven依赖管理?

配置依赖?

依赖简介

当前项目运行所需要的jar包,一个项目可以引入多个依赖

配置依赖

  1. ?在pom.xml中编写<dependencies>标签
  2. 在<dependencies>标签中使用<dependency>引入坐标
  3. 定义坐标的groupld,artifactld,version
  4. 点击刷新按钮,引入新添加的坐标
<dependencies>
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
</dependencies>

如果引入的依赖在本地仓库不存在,将会连接远程/中央仓库,然后下载依赖。

如果不知道依赖的坐标信息,可以在中Maven仓库官网中搜索

依赖传递

依赖传递简介?

依赖具有传递性

直接依赖 在当前项目中通过依赖配置建立的依赖关系

间接依赖 被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

排除依赖

由于依赖传递的特性,如果我们需要b项目,但不需要b项目依赖的某个项目,可以通过如下方式排除该依赖

以排除projectA由于依赖projectB,而依赖的junit为例

?插入exclusions标签,并在groupId,artifactId中填写要排除的依赖,不需要指定版本

<dependency>
            <groupId>com.itheima</groupId>
            <artifactId>maven-projectB</artifactId>
            <version>1.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
</dependency>

重新加载,发现projectA不再依赖于junit

?依赖范围

依赖的jar包,默认情况下可以在任何地方使用。

可以通过<scope>标签设置其作用范围

作用范围

主程序范围有效(main文件夹范围内)

测试程序范围有效(test文件夹范围内)

是否参与打包运行(package指令范围内)

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
</dependency>
scope值主程序测试程序打包(运行)范例
comile(默认)? ? √? ? ?√? ? ? √log4j
test? ? ×?? ? √? ? ? ×junit
provided?? ? √?? ? √? ? ? ×servlet-api
runtime? ? ?×?? ? √? ? ? √?jdbc驱动

生命周期

生命周期简介?

?Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段

有三套生命周期 clean? default? site

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行(运行install,clean不会运行因为他们不属于同一套生命周期)

主要关注如下五个阶段?

clean 移除上一次构建生成的元素

compile 编译项目源代码

test 使用合适的单元测试框架进行测试(junit)

package 将编译后的文件打包,如jar,war

install 安装项目到本地

?执行指定生命周期

  1. 在idea右侧的maven工具栏选中对应的生命周期双击
  2. 在命令行中通过命令执行 如mvn compile

文章来源:https://blog.csdn.net/m0_72832574/article/details/134888490
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。