Maven学习

第一章 为什么使用Maven

  • 获取jar包

    • 使用Maven之前,自行在网络中下载jar包,效率较低。如【谷歌、百度、CSDN....】

    • 使用Maven之后,统一在一个地址下载资源jar包【阿里云镜像服务器等...】

  • 添加jar包

    • 使用Maven之前,将jar复制到项目工程中,jar包添加到项目中,相对浪费存储空间

  • 使用Maven之后,jar包统一存储Maven本地仓库,使用坐标方式将jar包从仓库引入到项目中

     

  • 使用Maven便于解决jar包冲突及依赖问题

 

第二章 什么是Maven

  • Maven字面意:专家、内行

  • Maven是一款自动化构建工具,专注服务于Java平台的项目构建依赖管理

  • 依赖管理:jar之间的依赖关系,jar包管理问题统称为依赖管理

  • 项目构建:项目构建不等同于项目创建

    • 项目构建是一个过程【7步骤组成】,项目创建是瞬间完成的

      1. 清理:mvn clean

      2. 编译:mvn compile

      3. 测试:mvn test

      4. 报告:

      5. 打包:mvn package

      6. 安装:mvn install

      7. 部署:

 

第三章 安装并配置maven环境

3.5.2版本下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/

  • Maven底层使用Java语言编写的,所以需要配置JAVA_HOME环境变量及Path

  • 将Maven解压非中文无空格目录下

  • 配置MAVEN_HOME环境变量及Path

  • 输入【cmd】,进入命令行窗口,输入【mvn -v】 ,检查Maven环境是否搭建成功

 

 

 

配置环境变量

打开环境变量配置的界面,可以参考怎么安装jdk https://www.cnblogs.com/wyh-study/p/11794205.html (当然这里配置maven的前提是安装并配置了JDK)

接着,去path中添加配置bin目录

 

 

 

用cmd命令行输入mvn -v看看有没有配置成功:(看到如下的界面就说明配置成功了)

 

 

 

 

修改阿里云镜像

打开之前下载的maven文件:找到settings.xml文件,编辑打开:

在<mirrors>加入以下代码:

<mirror>
<id>alimaven</id>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>

 

新建jar包目录

  • Maven配置文件位置:maven根目录/conf/settings.xml

  • 设置本地仓库【默认:C:/用户家目录/.m2/repository】

自定义创建目录,把它当作我后面下载jar包的目标路径

修改刚刚打开的settings.xml

第四章 Maven及Idea的相关应用

将Maven整合到IDEA中

 

 

在IDEA中新建Maven工程

 

 

 

第五章 Maven核心概念

  • POM全称:Project Object Model【项目对象模型】,将项目封装为对象模型,便于使用Maven管理【构建】项目

  • pom.xml常用标签

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <!--    设置父工程坐标-->
        <parent>
            <artifactId>maven-demo</artifactId>
            <groupId>com.shujia</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>maven-helloworld</artifactId>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
        </properties>
    
        <dependencies>
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
    
        </dependencies>
    
    </project>
    复制代码

     

 

Maven约定的目录结构

  • 项目名

    • src【书写java源代码】

      • main【书写java主程序代码】

        • java【书写java代码】

        • resources【书写配置文件代码】

      • test【书写测试代码】

        • java【书写测试java代码】

    • pom.xml【书写配置文件代码】

    • target【编译后目录结构】

 

Maven生命周期

  • Maven生命周期:按照顺序执行各个命令,Maven生命周期包含以下三个部分组成

    • Clean LifeCycle:在进行真正的构建之前进行一些清理工作。

    • Default LifeCycle:构建的核心部分,编译,测试,打包,安装,部署等等。

    • Site LifeCycle:生成项目报告,站点,发布站点。

 

 

Maven插件和目标

  • 插件:插件本质是由jar包和配置文件组成

  • 目标:每个插件都能实现多个功能,每个功能就是一个插件目标。

Maven的仓库【重要】

  • 仓库分类

    • 本地仓库:为当前计算机提供maven服务

    • 远程仓库:为其他计算机也可以提供maven服务

      • 私服:架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务。

      • 中央仓库:架设在Internet上,为全世界所有Maven工程服务。

      • 中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求。

  • 仓库中的文件类型【jar包】

    • Maven的插件

    • 第三方框架或工具的jar包

    • 自己研发的项目或模块

 

 

Maven的坐标【重要】

  • 作用:使用坐标引入jar包

  • 坐标由g-a-v组成

    [1]groupId:公司或组织的域名倒序+当前项目名称

    [2]artifactId:当前项目的模块名称

    [3]version:当前模块的版本

  • 注意

    • g-a-v:本地仓库jar包位置

    • a-v:jar包全名

  • 坐标应用

复制代码
<dependencies>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
            <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.49</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.0.1</version>
    </dependency>

</dependencies>
复制代码

 

 

 

第六章 Maven的依赖管理

依赖范围

 

  • 依赖语法:<scope>

    • compile【默认值】:在main、test、Tomcat【服务器】下均有效。

    • test:只能在test目录下有效

      • junit

    • provided:在main、test下均有效,Tomcat【服务器】无效。

      • servlet-api

 依赖传递性

 

  • 路径最短者有先【就近原则】

  • 先声明者优先

  • 注意:Maven可以自动解决jar包之间的依赖问题

 

第七章 Maven中统一管理版本号

  • 语法

复制代码
<properties>
        <junit-version>4.12</junit-version>
</properties>
<dependencies>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
<!--            <scope>test</scope>-->
        </dependency>
</dependencies>
复制代码

 

 

 

第八章 Maven的继承

为什么需要继承

  • 如子工程大部分都共同使用jar包,可以提取父工程中,使用【继承原理】在子工程中使用

  • 父工程打包方式,必须是pom方式

Maven继承方式一

  • 在父工程中的pom.xml中导入jar包,在子工程中统一使用。【所有子工程强制引入父工程jar包】

  • 示例代码

复制代码
<packaging>pom</packaging>
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
复制代码

 

 

Maven继承方式二

  • 在父工程中导入jar包【pom.xml】 

  • 复制代码
    <packaging>pom</packaging>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    复制代码

     

 

在子工程引入父工程的相关jar包

 

复制代码
<parent>
    <artifactId>maven_demo</artifactId>
    <groupId>com.shujia</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>
 <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
</dependencies>
复制代码

 

 

  • 注意:在子工程中,不能指定版本号

 

第九章 Maven的聚合

  • 为什么使用Maven的聚合

    • 优势:只要将子工程聚合到父工程中,就可以实现效果:安装或清除父工程时,子工程会进行同步操作。

    • 注意:Maven会按照依赖顺序自动安装子工程

  • 语法

<modules>
    <module>maven_helloworld</module>
    <module>HelloFriend</module>
    <module>MakeFriend</module>
</modules>

 

posted @   SIKeborn  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示