• Maven原理学习


    参考链接:Maven基础篇(IDEA版)


    一、Maven概述

    Maven是一个项目管理工具,他包含了一个项目对象模型(POM),一组标准组合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期中插件目标的逻辑

    Maven能解决什么问题?

    • 项目需要大量的jar包导入时,每次都要手动引入,很麻烦
    • 单元测试很多时,需要一次性执行一个目录下的所有测试
    • 打包项目时需要手动打包

    如果有了maven,以上问题都可以很方便地解决。另外,如果有了maven,项目大小会大大减少,一个几十兆的项目经过maven管理后可以变得只有几十到几百KB。



    二、maven依赖管理

    简而言之:maven对jar包的管理过程
    在这里插入图片描述

    1. maven将jar包单独放在一个仓库中,减少了重复打包jar文件,减小了项目大小。
    2. maven项目jar包坐标即项目中的pom.xml


    三、maven文件结构

    从官网上下载maven
    解压到一个目录下,文件目录如下:
    在这里插入图片描述

    • bin目录(mvn.cmd用来构建项目):
      在这里插入图片描述
    • boot是maven自身运行的类加载器
    • conf目录(settings.xml是maven配置的文件):
      在这里插入图片描述
    • lib(maven依赖的jar包)



    四、maven仓库的种类以及彼此联系

    maven仓库引用的jar仓库在哪呢?maven下的conf文件夹中打开settings.xml,有这样一句代码:

    Default: ${user.home}/.m2/repository
    <localRepository>/path/to/local/repo</localRepository>
    

    表示在用户的home文件夹下创建.m2/repository文件夹作为本地仓库,用于存放jar包。
    下面localRepository解除注释后可以作为自定义的本地仓库。
    在这里插入图片描述
    maven共有三种仓库:本地仓库远程仓库[私服]中央仓库



    五、maven标准目录结构

    目录 功能
    src/main/java 核心代码部分
    src/main/resources 配置文件部分
    src/test/java 测试代码部分
    src/test/resources 测试配置文件
    src/main/java 核心代码部分
    src/main/webapp 页面资源js,css,图片



    六、mvn命令

    目录的target目录保存编译后的文件

    命令 功能
    mvn clean 清除target目录(编译的文件)
    mvn complie 编译srcmainjava,生成target目录
    mvn test 执行第2命令,编译测试项目和项目,在target目录下多生成test-classes目录
    mvn package 执行第2-3条命令,并打包项目,打成war还是jar要看pom.xml的packgeing标签
    mvn install 执行第2-第4条命令,并且在把项目jar包安装在本地仓库
    mvn deploy 执行第2-第5条命令,发布项目



    七、maven生命周期

    1. 清理生命周期:执行mvn clean的过程
    2. 默认生命周期:简单点说就是compiler->test->package->install->deploy
    3. 站点生命周期:不做讲述


    八、maven的概念模型

    在这里插入图片描述

    1. pom.xml:

    标签 信息
    dependencies标签之前的信息 项目自身信息
    dependencies标签内 运行时所依赖的jar包信息
    build标签内 项目运行环境信息,比如jdk,tomcat

    2. 依赖管理模型:
    放置的都是jar包坐标:

    标签 信息
    groupId 公司组织的名称
    artifactId 项目名
    version 版本号
    scope 作用域,常用于解决jar包冲突问题
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    

    3.plug.in:
    在maven的默认生命周期里,调用的构建命令都由maven的plug in插件去实现,达到一键构建的效果。

  • 相关阅读:
    #define中的特殊符号
    c++ windows下计时
    c++内存池
    u3d 场景资源打包
    Unity3d 动态加载材质方法
    Unity3D Shader基础教程
    Unity3D Shader入门指南(一)
    Unreal发展史
    阴影锥(shadow volume)原理与展望
    软硬RAID 和 不常见的RAID
  • 原文地址:https://www.cnblogs.com/theory/p/11884312.html
Copyright © 2020-2023  润新知