Maven基础

Maven基础

一,Maven简介

1,Maven的概念与作用

  • 传统项目管理状态分析
    • jar包不统一,jar包不兼容
    • 工程升级维护过程操作繁琐
  • Maven是什么
  • Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
  • POM(项目对象模型)
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vf3wWwe2-1593826750512)(E:\每日讲课笔记\WEB_new\16-Maven基础(双元)\day01\img\1593698119066.png)]
  • Maven能做项目构建依赖管理
    • 项目构建:提供一个标准的跨平台的自动化构建方式(一条指令,一个按钮就帮我们把整个过程管理了)
    • 依赖管理 :方便快捷的管理项目依赖的资源(jar包)(简单来说就是帮我们管jar包,并且jar包如果有冲突,能帮你管理),提供插件方便开发人员打包项目成一个jar
    • 开发结构统一:提供标准的、统一的项目结构

二,Maven下载与安装

  • 解压apache-maven-3.6.3-bin.zip 接的文件是这一个
  • 配置MAVEN_HOME
  • 配置path(%MAVEN_HOME%\bin)
  • cmd中执行mvn看是否安装成功

三,Maven基本概念

1,仓库:用于存储资源,包含各种jar包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XCtxIBQG-1593826750517)(E:\每日讲课笔记\WEB_new\16-Maven基础(双元)\day01\img\1593700373877.png)]

  • 仓库分类
    • 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
    • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:Maven团队维护中,存储所有资源的仓库
      • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保护具有版权的资源,包含购买或自主研发的jar
    • 中央仓库中的jar都是开源的,不能存储具有版权的资源
    • 一定范围内共享资源,仅对内开放,不对外共享

2,坐标

  • mvnrepository.com这里面查坐标
  • Maven坐标主要组成
  • group:定义当前Maven项目隶属组织名称(eg:org.mybatis)
  • artifactld:定义当前Maven项目名称
  • version:定义当前项目版本号

3,仓库配置

  • 进入maven_home的目录

    • 进入conf目录

    • 编辑settings文件

      • 修改本地仓库地址

      • <localRepository>你的目录</localRepository>
        
      • 配置阿里镜像(远程仓库配置)

        • 在mirros标签下面添加一下内容

        • <mirror>
                <id>alimavenid>
                <name>aliyun mavenname>
                <url>http://maven.aliyun.com/nexus/content/groups/public/url>
                <mirrorOf>centralmirrorOf>        
              mirror>
          

四,第一个Maven程序

  • 目录结构

  • project-name

    • src
      • main
        • java
        • resources
      • test
        • java
        • resources
    • pom 指定jar
  • web-project

    • src
      • main
        • java
        • resources
        • webapp
      • test
        • java
        • resources
    • pom 指定jar
  • web 工程tomcat配置

    1. tomcat插件

    • 添加Tomcat运行插件到pom文件中
    <dependencies>
    dependencies>  
    
    
      <build>
        
        <plugins>
          
          <plugin>
            <groupId>org.apache.tomcat.mavengroupId>
            <artifactId>tomcat7-maven-pluginartifactId>
            <version>2.1version>
            <configuration>
              <port>80port>
              <path>/path>
            configuration>
          plugin>
        plugins>
      build>
    

五,依赖管理

  • 效果: 导入其他包如果说该包依赖于其他jar你在当前项目也会获得这些jar
  • 可选依赖
    • 他可以让你选择那些你依赖的jar不给其他工程可见
    <dependencies>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.18version>
            <optional>trueoptional>
        dependency>
    dependencies>
  • 排除依赖

    • 主动排除送的jar
     <dependency>
                <groupId>com.itheimagroupId>
                <artifactId>maven-helloartifactId>
                <version>1.0-SNAPSHOTversion>
                <exclusions>
                    <exclusion>
                        <groupId>mysqlgroupId>
                        <artifactId>mysql-connector-javaartifactId>
                    exclusion>
                exclusions>
            dependency>
    
  • 依赖范围

    • compile 默认都有
    • test 只能在test包里面使用
    • provide 除了不参与打包其他都有
    • runtime 只参与打包其他地方都没有

六,生命周期与插件

  • maven生命周期

    • 生命周期特点
      • 执行后面的生周期也会先顺序执行前面的生命周期
    • clean
      • 清楚target目录,清楚缓存
    • package
      • 打包工程
    • install
      • 就将jar安装到我们本地仓库

    WAR VS JAR

    • war : web工程,能够直接部署到tomcat
      生命周期特点
      • 执行后面的生周期也会先顺序执行前面的生命周期
    • clean
      • 清楚target目录,清楚缓存
    • package
      • 打包工程
    • install
      • 就将jar安装到我们本地仓库

    WAR VS JAR

    • war : web工程,能够直接部署到tomcat
    • jar: 普通的java工程,多半是工具类或则框架的源码

你可能感兴趣的:(Maven基础)