maven的概述、安装构建流程和基本操作

一、maven概述

1.什么是maven?

Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具
官网:http://maven.apache.org/

2.maven的作用?

  1. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题;
  2. 统一项目结构:提供标准的、统一的项目结构
文件名作用
main实际项目资源
javajava源代码目录
resources配置文件目录
test测试项目资源
resources
pom.xml项目配置文件

3.项目构建:标准跨平台( Linux、Windows、MacOS)的自动化项目构建方式

3.仓库

仓库:用于存储资源,管理各种jar包。

  • 本地仓库:自己计算机上的一个目录。
  • 中央仓库:由Maven团队维护的全球唯一的。
  • 仓库地址: https://repo1.maven.org/maven2/远程仓库(私服):一般由公司团队搭建的私有仓库。

4. maven的安装

安装步骤:

  1. 解压apache-maven-3.6.1-bin.zip 。
  2. 配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录
    <localRepository>E:\develop\apache-maven-3.6.1\mvn_repo</localRepository>
  3. 配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:
<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>
  1. 配置环境变量:MAVEN_HOMEmaven的解压目录,并将其bin目录加入PATH环境变量
  2. 安装成功测试:cmd中键入mvn -v查看版本号

尽量使用11以后的jdk版本(企业级开发等最常用版本)。

二、IDEA集成maven

1.配置Maven环境

  1. 配置Maven环境(当前工程):

选择IDEA中 File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven
设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径

  • 1.在项目设置里配置SDK,最好是11版本以上的,语言级别为11。
  • 2.在settings中设置:构建工具中的maven,设置主路径为安装路径,配置远程仓库为maven_reop(在maven项目下自建)
  • 3.在settings中设置:在maven的运行程序中配置JRE版本
  • 4.在settings中设置:编译器中的java编译器,设置项目字节码为11版本

但是上述环境配置较为繁琐

  1. 配置Maven环境(全局工程):
  • 1.关闭所有项目,点击costomize->allSettings
  • 2.与上述流程相同,在此不再赘述。

2. 创建Maven项目

  • 1.创建模块,选择Maven,点击Next
  • 2.填写模块名称,坐标信息,点击finish,创建完成
  • 3.编写Helloworld,并运行,产生的字节码会存放在自动生成的target文件夹下面

3. 导入Maven项目

  • 方式一︰打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可。
  • 方式二︰打开IDEA,选择左侧文件->项目结构->模块->点击+号,选中对应项目的pom.xml文件,双击即可。。

4. maven的坐标

  • 什么是坐标?
    • Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置
    • 使用坐标来定义项目引入项目中需要的依赖
  • Maven坐标主要组成
    • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
    • artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service.goods-service)
    • version:定义当前项目版本号

三、依赖管理

1.依赖配置

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
  • 配置:
    1. pom.xml中编写<dependencies>标签
    2. <dependencies>标签中使用<dependency>引入坐标
    3. 定义坐标的groupld, artifactld,version
    4. 点击刷新按钮,引入最新加入的坐标

如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程会比较耗时,耐心等待)。
如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。

2.依赖传递

  1. 依赖的传递
  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
  1. 排除依赖:排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。

排除依赖的关键字<exclusions>,例如:

 <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
		
        <dependency>
            <groupId>com.mannor</groupId>
            <artifactId>maven-projectB</artifactId>
            <version>1.0-SNAPSHOT</version>
			
            <!--排除依赖-->
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
  1. 依赖范围:依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...</ scope>设置其作用范围。
    作用范围:
  • 主程序范围有效。(main文件夹范围内)
  • 测试程序范围有效。(test文件夹范围内)
  • 是否参与打包运行。(package指令范围内)
    例如:
   <dependency>
            <groupld>junit</groupld>
            <artifactld>junit</artifactld>
            <version>4.10</version>
            <scope>test</scope>
    </dependency>

常见的scope关键字:

scope值主程序测试程序打包(运行)范例
compile(默认)YYYlog4j
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动

查看依赖是否有效,使用的是Logger关键字,看是否可以定义变量

  1. 生命周期:Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。
  • Maven中有3套相互独立的生命周期:
  • clean:清理工作。
  • default:核心工作,如:编译、测试、打包、安装、部署等。
  • site:生成报告、发布站点等。

注意:每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

常用的五个生命周期阶段:

  • clean:移除上一次构建生成的文件
  • compile: 编译项目源代码
  • test:使用合适的单元测试框架运行测试(junit)
  • package:将编译后的文件打包,如:jar.war等
  • install:安装项目到本地仓库

生命周期的执行方式:执行指定生命周期的两种方式:

  • 1.在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。
  • 2.在命令行中,通过命令执行,在对应的项目文件终端下:例如:mvn clean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曼诺尔雷迪亚兹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值