java项目的构建工具-Maven

发布于:2024-04-25 ⋅ 阅读:(18) ⋅ 点赞:(0)

黑马程序员JavaWeb开发教程

一、概述

1、介绍

(1)介绍

  • Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建

(2)Maven的作用

  1. 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题
  • 只需要在 pom.xml 中配置即可
  1. 统一项目结构:提供标准统一的项目结构

    在这里插入图片描述

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

(3)官网

  • http://maven.apache.org/

(4)仓库

  • 用于存储资源,管理各种jar包
    • 本地仓库:自己计算机上的一个目录
    • 中央仓库:有Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
    • 远程仓库(私服):一般由公司团队搭建的私有仓库

2、安装

二、IDEA 集成 Maven

1、配置Maven环境

  1. 全局参数的配置(如果仅配置当前工程的话,那么美创建一个新的项目就要重新配置一次)
  2. IDEA配置Maven环境

2、创建Maven项目

  • IDEA 创建Maven项目
  • 此时可能会遇到报红,可以尝试以下方法
    • 按照“IDEA配置Maven环境”的步骤重新检查一下,各种配置是否正确

    • 每次报错之后先回到本地仓库中搜索带有.lastUpdate后缀的文件全选,删除,之后再回到IDEA中重新刷新Maven项目(点击右侧工具栏中的maven,点击刷新图标)

      在这里插入图片描述

    • 除了原本的镜像尝试以下镜像,在配置文件settings.xml的mirrors 标签中填入(使用其中一个的时候,可以把另一个先注释)

      • 镜像一
<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <url>http://repo1.maven.org/maven2/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
<mirror>
    <id>repo2</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
    <id>ibiblio</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
    <id>jboss-public-repository-group</id>
    <mirrorOf>central</mirrorOf>
    <name>JBoss Public Repository Group</name>
    <url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
    <id>google-maven-central</id>
    <name>Google Maven Central</name>
    <url>https://maven-central.storage.googleapis.com
    </url>
    <mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像  -->
<mirror>
    <id>maven.net.cn</id>
    <name>oneof the central mirrors in china</name>
    <url>http://maven.net.cn/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

镜像二

<mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror> 

(1)Maven坐标

  1. 什么是坐标
  • Maven中的坐标是资源的唯一表示,通过该坐标可以唯一定位资源位置
  • 使用坐标来定义项目或引入项目中需要的依赖
  1. Maven坐标主要组成
  • gruopid:定义当前Maven项目隶属组织名称(通常是域名反写)
  • artifactId:定义当前Maven项目名称(通常是模块名称)
  • version:定义当前项目版本号
    在这里插入图片描述

3、导入Maven项目

(1)方式一

  • 打开IDEA,选择右侧maven面板,点+号,选中对应项目的pom.xml文件,双击即可

    在这里插入图片描述

    • 如果没有看到相关的面板,view,Apperance,Tool Window Bars 调出来
      在这里插入图片描述

(2)方式二

  • File ,Project Structure,Moudles, import Module, Modules, pom.xml

    在这里插入图片描述

  • 从IDEA中移除Maven项目:项目右键,Remove Module

    在这里插入图片描述

三、 依赖管理

1、 依赖配置

  1. 依赖:值当前项目运行所需要的jar包,一个项目中可以引入多个依赖
  2. 配置
  • 在 pom.xml 中编写<dependencies>标签
  • <dependencies> 标签中使用<dependency> 引入坐标
  • 定义坐标的 groupId,artifactId,version
  • 点击刷新按钮,引入最新加入的坐标
  1. 注意事项
  • 如果引入依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)
  • 如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。

2、依赖传递

  1. 依赖具有传递性
  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目简介依赖其他资源
  1. 排除依赖:排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
<exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
  </exclusions>

3、依赖范围

  • 依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope></scope>设置其作用范围。
  • 作用范围
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包运行(package指令范围内)
<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>

在这里插入图片描述

4、生命周期

  1. Maven的生命周期就是为了对所有的Maven项目构建过程进行抽象和统一
  2. Maven中有三套,相互独立的生命周期:
  • clean:清理工作
  • default:核心工作,如:编译、测试、打包、安装、部署等
  • site:生成报告、发布站点等(不常用)
  1. 每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
    在这里插入图片描述
  2. 常见的生命周期阶段
  • clean:移除上一次构建生成的文件
  • compile:编译项目源代码
  • test:使用合适的单元测试框架运行测试(junit)
  • package:将编译后的文件打包,如jar、war等
  • install:安装项目到本地仓库
  1. 注意事项
  • 在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行
  1. 常用的几个阶段在maven面板中都有
    在这里插入图片描述
  2. 执行指定生命周期的两种方式
  • 在idea中,右侧maven工具栏,选中对应的生命周期,双击执行。
  • 在命令行中,通过命令执行(例如:mvn compile)