• Maven——maven核心概念


    1. maven核心概念

    1.1 maven约定的目录规则

    例如:创建项目工程test-maven

    test-maven/
        |—/src
            |------/main #放你主程序java代码和配置文件
                |----------/java #你的程序包和包中的java文件
                |----------/resources #你的java程序中要使用的配置文件
            |------/test #放测试程序代码和文件的(可以没有)
                |----------/java #测试程序包和包中的java文件
                |----------/resources #测试java程序中要使用的配置文件
    |—/pom.xml #maven的核心文件(maven项目必须有)

    1.2 设置本机仓库

    1.2.1 仓库概念

    • 仓库是存放东西的, 存放maven使用的jar 和 我们项目使用的jar
    • 存放的内容
      • maven使用的插件(各种jar)
      • 项目使用的jar(第三方的工具)

    1.2.2 仓库分类

    • 本地仓库, 就是你的个人计算机上的文件夹,存放各种jar
    • 远程仓库, 在互联网上的,使用网络才能使用的仓库
      • 中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,https://repo.maven.apache.org :中央仓库的地址
      • 中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
      • 私服,在公司内部,在局域网中使用的, 不是对外使用的。

    1.2.3 本地仓库设置

    • maven仓库的使用不需要人为参与。
      找到下列目录下的文件编辑即可
      在这里插入图片描述
      在这里插入图片描述

    1.3 pom文件解析

    • Project Object Model 项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在 xml 文件中进行声明,以方便进行构建和描述,pom.xml 是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和操作都是关于 pom.xml 的。
    属性名属性含义
    groupId组织 id,一般是公司域名的倒写。 格式可以为 com.baid
    artifactId项目名称,也是模块名称。
    version项目版本号
    packaging项目打包的类型,可以使 jar、war、rar、ear、pom,默认是 jar
    dependencies 和dependencyMaven 的一个重要作用就是管理 jar 包,为了一个项目可以构建或运行,项目中不可避免的,会依赖很多其他的 jar 包,在 Maven 中,这些 jar 就被称为依赖,使用标签 dependency 来配置。
    propertiesproperties 是 用 来 定 义 一 些 配 置 属 性 的 , 例 如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。
    buildbuild 表示与构建相关的配置,例如设置编译插件的 jdk 版本
    parent【了解】在 Maven 中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似 Java 的继承机制,用 parent 声明要继承的父工程的 pom 配置。
    modules【了解】在 Maven 的多模块开发中,为了统一构建整个项目的所有模块,可以提供一个额外的模块,该模块打包方式为 pom,并且在其中使用 modules 聚合的其它模块,这样通过本模块就可以一键自动识别模块间的依赖关系来构建所有模块,叫 Maven 的聚合。

    示例:

    <groupId>com.lclgroupId>
      <artifactId>ch03-maven-webartifactId>
      <version>1.0-SNAPSHOTversion>
      <packaging>warpackaging>
    
      <name>ch03-maven-web Maven Webappname>
      
      <url>http://www.example.comurl>
    
      <properties>
        
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        
        <maven.compiler.source>1.8maven.compiler.source>
        
        <maven.compiler.target>1.8maven.compiler.target>
      properties>
    
      <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.11version>
          <scope>testscope>
        dependency>
      dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    1.4 maven 的生命周期、命令、插件概述

    声明周期
        对项目的构建是建立在生命周期模型上的,它明确定义项目生命周期各个阶段,并且对于每一个阶段提供相对应的命令,对开发者而言仅仅需要掌握一小堆的命令就可以完成项目各个阶段的构建工作。
        构建项目时按照生命周期顺序构建,每一个阶段都有特定的插件来完成。不论现在要执行生命周期中的哪个阶段,都是从这个生命周期的最初阶段开始的。
        对于我们程序员而言,无论我们要进行哪个阶段的构建,直接执行相应的命令即可,无需担心它前边阶段是否构建,Maven 都会自动构建。这也就是 Maven 这种自动化构建工具给我们带来的好处。

    maven命令【了解,不需要记忆】

    • mvn clean 清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
    • mvn compile 编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
    • mvn test-compile 编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
    • mvn test 测试(会生成一个目录surefire-reports,保存测试结果)
    • mvn package 打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
    • mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
    • mvn deploy 【一般不用】部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。还会自动把项目部署到 web 容器中)

    2. IDEA中maven的配置

    2.1 配置maven

    在这里插入图片描述
    在这里插入图片描述

    2.2 使用maven创建WEB项目

    • 首先创建一个空项目,在项目里面新建moudle

    在这里插入图片描述
    在这里插入图片描述
    新建项目名
    在这里插入图片描述
    在这里插入图片描述
    出现下方内容表示创建成功
    在这里插入图片描述
    模板目录是不够的,需要做出修改:
    在这里插入图片描述
    修改后如下:
    在这里插入图片描述
    到这里基于maven的项目就创建成功了

  • 相关阅读:
    Java中synchronized:特性、使用、锁机制与策略简析
    Linux多线程(线程同步与条件变量)
    【翻译】Seastar 教程(三)
    如何生成和调试 Linux 程序崩溃产生的 core 文件
    [云原生k8s] k8s管理工具kubectl详解(一)
    软件测评中心▏软件功能测试和非功能测试的区别和联系简析
    变化检测数据集制作详细版
    微信小程序健康管理系统的开发与实现
    vi/vim快速注释多行,vi添加删除多行注释#,vi批量注释,批量添加注释,批量删除注释,vi显示行号
    英飞凌Tricore原理及应用介绍06_系统定时器(STM)模块详解
  • 原文地址:https://blog.csdn.net/weixin_44606952/article/details/126473232