• Maven基础


     Maven基础

    1Maven介绍

    1.1什么是Maven

    Maven发音是[ˈmevən](枚文)意思是专家、内行。

    Maven的一个比较正式的定义:

    Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合

    一个项目生命周期(Project Lifecycle),一个依赖管 理系统(Dependency Management System),

    和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑

    1.2为什么使用Maven

    大工程需要引入很多java包,容易遇到jar包和版本冲突问题;

    代码完成后,需要写单元测试,一个个运行检查;

    需要吧代码、配置文件、资源整合后打包;web项目需要发布到服务器;

    Maven是一个能帮我们从上面这些繁琐的工作解放出来的工具。能帮助我们:

    构建项目、管理jar包、编译代码、自动运行单元测试(...)、打包、生成报表(...)、部署项目生成web站点。

    1.3依赖管理的概念

    依赖管理就是管理jar包的过程(Maven的一个核心功能);

    传统工程把依赖的jar包复制到项目中,会使工程内存变得很大,Maven创建的工程,就不用担心这个问题。(如下图)

     

     Maven工程中没有存放jar包,取而代之的是在pom.xml文件中加入jar包的坐标(GAV:公司/组织名+项目名+版本号),即添加依赖

    项目用到jar包的时候,通过pom.xml中的坐标(依赖,从仓库(Maven仓库)中找到对应的jar包,然后拿来运行。

    补充:因为Maven仓库中建立了索引,所以提高了maven项目根据pom.xml配置文件中的依赖加载jar包的速度(达到了传统项目加载自己jar包一样的速度)

    1.4一键构建的概念

     构建:项目从编译、测试、运行、打包、安装、到部署的整个过程都交给maven管理。

    一键构建:maven将项目构建的过程标准化,每个阶段使用一个命令就可以完成。

    Maven的构建过程的阶段,图如下:

    例子:mvn tomcat7:run 一键运行Hello-Maven工程

      在打开cmd,进入项目根目录,输入mvn tomcat7:run后(也可以进入根目录,shift+右键,之间进入cmd输入命令),然后复制网址,浏览器访问。

     2Maven的安装和仓库的种类

     2.1安装

    去官网下载(http://maven.apache.org/download.cgi)apache-maven-3.6.0-bin.zip。

    (Maven 3.3+要求执行JDK 1.7或更高版;Maven使用前提安装了jdk)

    这个下载网址也可以http://archive.apache.org/dist/maven/maven-3/

     

    然后解压到没有中文的目录,并且配置环境变量MAVEN_HOME,设置为安装路径。

     path添加:%MAVEN_HOME%in

    Maven软件结构

    bin:存放了 maven 的命令,比如我们前面用到的 mvn tomcat:run

    boot:存放了一些 maven 本身的引导程序,如类加载器等

    conf:存放了 maven 的一些配置文件,如 setting.xml

    文件 lib:存放了 maven 本身运行所需的一些 jar 包

     使用mvn -v命令测试安装是否成功

    2.2仓库的种类

    仓库分三种:本地仓库、远程仓库(私服)和中央仓库;

    本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找

    默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示 windows 用户目录

    默认本地仓库位置需要修改到显眼的地方。

    打开configsetting.xml文件

    设置镜像

      <mirrors>
      
          <!-- 阿里云仓库 -->
            <mirror>
                <id>alimaven</id>
                <mirrorOf>central</mirrorOf>
                <name>aliyun maven</name>
                <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
            </mirror>
        
            <!-- 中央仓库1 -->
            <mirror>
                <id>repo1</id>
                <mirrorOf>central</mirrorOf>
                <name>Human Readable Name for this Mirror.</name>
                <url>http://repo1.maven.org/maven2/</url>
            </mirror>
        
            <!-- 中央仓库2 -->
            <mirror>
                <id>repo2</id>
                <mirrorOf>central</mirrorOf>
                <name>Human Readable Name for this Mirror.</name>
                <url>http://repo2.maven.org/maven2/</url>
            </mirror>全局

    全局setting和用户setting

    maven 仓库地址、私服等配置信息需要在 setting.xml 文件中配置,分为全局配置和用户配置。

    在 maven 安装目录下的有 conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project 项目,它作为 maven 的全局配置。

    如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:${user.dir} /.m2/settings.xml 目录中,${user.dir} 指 windows 中的用户目录。

    maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

    远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载(???不是中央仓库吗,需要测试) 远程仓库可以在互联网内也可以在局域网内。 

    中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,

    服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件。

    3 Maven标准目录结构和常用命令

     Maven目录结构

    src/main/java (存放项目的.java 文件)

    src/main/resources (存放项目资源文件,如 spring, hibernate 配置文件)

    src/test/java (存放所有单元测试.java 文件,如 JUnit 测试类)

    src/test/resources ( 测试资源文件)

    target (项目输出位置,编译后的 class 文件会输出到此目录)

    pom.xml(maven 项目核心配置文件 注意:如果是普通的 java 项目,那么就没有 webapp 目录。

    常用命令:

    compile:编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。

      (进入Maven项目目录cmd 进入命令状态,执行 mvn compile,其它命令执行类似)

    test:测试命令 mvn test,会执行 src/test/java 下的单元测试类

    clean:清理命令,执行 clean 会删除 target 目录及内容。

    package:对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包。

    install:maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。

    当后面的命令执行时,前面的操作过程也都会自动执行,

    4Maven生命周期和概念模型图

    三套”相互独立的生命周期“,重点掌握默认生命周期。

     概念模型图

    5使用骨架创建Maven的java工程

    首先在idea中配置maven:

    上面配置成功以后,每次创建maven项目还是要选择,解决方法:

    ps:如果c盘用户里面那个仓库删除以后等下次运行还会在出来的话,就去你idea的安装路径里找个

    名字为plugins的文件夹,里面也有一个maven文件这里面有idea自带的两个maven版本童谣道理找到这两个里面的settings.xml将路径更改一下即可

     

     用骨架创建一个java项目

     

    填写坐标

    设置配置信息

    设置项目位置

    补全文件夹:

    不用骨架直接穿件java工程则不需要创建资源文件夹,推荐这种方式。

    用骨架创建一个web项目

    过程和上面类似,需要创建src下创建java文件夹,make as Sources Root.

    6Maven工程servlet实例

    mavevn问题:

    01idea maven仓库索引更新怎么弄?

  • 相关阅读:
    Hystrix熔断原理
    FeignClient Hystrix超时重试降级
    Windows上Docker Toolbox修改镜像源
    Windows10家庭版安装docker
    Class类文件结构--访问标志
    MySQL常见的七种锁详细介绍()
    maven setting.xml 阿里云镜像 没有一句废话
    mysql 批量操作,已存在则修改,不存在则insert,同时判断空选择性写入字段
    hdu5730
    3月部分题目简要题解
  • 原文地址:https://www.cnblogs.com/juna3066/p/10618616.html
Copyright © 2020-2023  润新知