maven

笔记

Maven是什么

Maven_百度百科 (baidu.com)

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

 

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

 

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。  

 

常用命令

 

mvn archetype:generate 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编译测试源代码 mvn test 运行应用程序中的单元测试 mvn site 生成项目相关信息的网站 mvn clean 清除项目目录中的生成结果 mvn package 根据项目生成的jar mvn install 在本地Repository中安装jar mvn eclipse:eclipse 生成eclipse项目文件 mvnjetty:run 启动jetty服务 mvntomcat:run 启动tomcat服务 mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类

 

 

 

构建过程中的各个环节

 

        [1]清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备

 

        [2]编译:将java源程序编译成class字节码文件

 

        [3]测试:自动测试,自动调用junit程序

 

        [4]报告:测试程序执行的结果

 

        [5]打包:动态web工程 打war包,java工程打jar包

 

        [6]安装:Maven特定的概念---将打包得到的文件复制到“仓库”中的指定位置

 

        [7]部署:将动态web工程生成的war包复制到Servlet容器的指定目录下,使其可以运行

 

 

 

安装Maven核心程序

 

    1.安装JDK

 

    2. Maven 下载地址:http://maven.apache.org/download.cgi

 

    3.配置maven环境:

 

            添加M2_HOME:对应Maven的解压目录即可

 

maven

 

  4.验证安装成功:mvn -v

 

 maven

 

 

 

 

 

 

本地仓库位置修改

 

修改解压目录下conf/settings.xml文件

 

<localRepository>D:\tools\repository</localRepository>

 

 

 

修改maven默认的JDK版本

 

 

<profile> 
    <id>JDK-1.8</id> 
    <activation> 
        <activeByDefault>true</activeByDefault>
         <jdk>1.8</jdk>
     </activation> 
<properties> 
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>

 

 

 

 

添加国内镜像源

 

<mirror>  
      <id>nexus-aliyun</id>  
      <mirrorOf>central</mirrorOf>    
      <name>Nexus aliyun</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
    </mirror>

 

 

 

 

 

Maven的核心概念

 

  1. 约定的目录结构
  2. POM
  3. 坐标
  4. 依赖
  5. 仓库
  6. 生命周期/插件/目标
  7. 继承
  8. 聚合

 

 

 

第一个Maven程序

 

  1.     创建约定的目录结构

 

maven

 

 

 

 

(1)根目录:工程名

 

            (2)src目录:源码

 

            (3)pom.xml文件:Maven工程的核心配置文件

 

            (4)main目录:存放主程序

 

            (5)test目录:存放测试程序

 

            (6)java目录:存放java源文件

 

            (7)resources目录:存放框架或其他工具的配置文件

 

 

 

        2.为什么要遵守约定的目录结构

 

    • Maven要负责我们这个项目的自动化构建,以编译为例,Maven要想自动进行编译,那么它必须知道java源文件保存在哪里
    • 如果我们自己自定义的东西想要让框架或工具知道
      • 以配置的方式明确告诉框架
      • 遵守框架内部已经存在的约定
    • 约定>配置>编码

 

                    

 

        3.常用的Maven命令

 

            (1)注意:执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录

 

                与构建过程相关:编译、测试、打包、......

 

            (2)常用命令(Maven核心程序如果在本地仓库中找不到需要的插件,会到*仓库联网下载)

 

                tips:本地仓库位置:[系统中当前用户的家目录]\.m2\repository

 

                修改maven默认本地仓库的位置:

 

                 conf的settings.xml中找到:<localRepository>/path/to/local/repo</localRepository>修改为准备好的Maven仓库目录

 

                

 

                _1.mvn clean:清理

 

                _2.mvn compile:编译主程序

 

                _3.mvn test-compile:编译测试程序

 

                _4.mvn test:执行测试

 

                _5.mvn package:打包

 

 

 

        4.POM

 

            _1.含义:Project Object Model    项目对象模型

 

                DOM Document Obejct Model    文档对象模型

 

 

 

            _2.pom.xml对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置

 

 

 

 

 

        5.坐标

 

            _1.数学中的坐标:

 

                (1)在平面上使用x,y两个向量可以唯一的定位平面中的任何一个点

 

                (2)在空间中使用x,y,z三个向量可以唯一的定位空间的任何一个点

 

            _2.Maven的坐标(GAV)

 

                使用下面三个向量在仓库中唯一定位一个Maven工程

 

                [1]groupid:公司或组织域名倒序+项目名

 

                    <groupid>com.atguigu.maven</groupid>

 

 

 

                [2]artifactid:模块名

 

                    <artifactid>Hello</artifactid>

 

 

 

                [3]version:版本

 

                    <version>1.0.0</version>

 

 

 

            _3.Maven工程的坐标与仓库中路径的对应关系

 

                    com/atguigu/maven/Hello/1.0.0/Hello.1.0.0.jar

 

 

 

        6.仓库

 

            (1)仓库的分类

 

                1.本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有Maven工程服务

 

                2.远程仓库:

 

                    [1]私服:搭建在局域网中,环境下, 为当前局域网范围内的所有Maven工程服务

 

                    [2]*仓库:架设在Internet上,为全世界所有Maven工程服务

 

                    [3]*仓库镜像:为了分担*仓库的流浪,提升用户访问速度

 

            (2)仓库中保存的内容:Maven工程

 

                [1]Maven自身所需要的插件

 

                [2]第三方架构或工具的jar包

 

                [3]我们自己开发的Maven工程

 

 

 

生命周期

 

    1.各个构建环节执行的顺序,不能打乱顺序,必须按照既定的正确顺序来执行

 

    2.Maven的核心程序中定义了抽象的生命周期,生命周期中各个阶段的具体任务是由插件来完成的

 

    3.Maven的核心程序为了更好实现自动化构建,按照这一特点执行生命周期中的各个阶段:不论现在要执行生命周期的哪一个阶段,都是从这个生命周期最初的位置开始执行

 

 

 

 

 

依赖

 

     依赖排除  

 

maven

 

 

 

 

   依赖原则

 

            1.验证路径者最短优先

 

            2.验证路径相同时先声明者优先

 

        统一管理依赖版本

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:Maven 学习笔记 多环境配置


下一篇:Maven常用命令