zoukankan      html  css  js  c++  java
  • Maven基本认识

    1.maven目录

    ProjectName

      |-src

      |   |-main

      |   |  |-java        —— 存放项目的.java文件

      |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件

      |   |-test

      |      |-java        ——存放所有测试.java文件,如JUnit测试类

      |      |-resources   —— 测试资源文件

      |-target             —— 目标文件输出位置例如.class、.jar、.war文件

      |-pom.xml           ——maven项目核心配置文件

    2.maven常用命令

    mvn compile

      完成编译操作

    执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。

    mvn clean

      执行完毕后,会将target目录删除。

    mvn test

      完成单元测试操作

      执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)

     mvn package

     完成打包操作

      执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war

     mvn install

      执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作

     执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

    mvn 组合命令

      mvn clean compile

      mvn clean test

      mvn clean package

      mvn clean install

    3.maven项目使用

      在平面几何中坐标(x,y)可以标识平面中唯一的一点。在maven中坐标就是为了定位一个唯一确定的jar包。

      Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器

      Maven坐标主要组成(GAV) -确定一个jar在互联网位置

    groupId:定义当前Maven组织名称

    artifactId:定义实际项目名称

    version:定义当前项目的当前版本

     坐标的查找

      访问http://www.mvnrepository.com或者http://search.maven.org/网站

      假设搜索所spring core,如图然后点击sping,接点选择所需要的版本,就能看到所需要的jar包了

    4.依赖管理

    scope 依赖范围

     

      其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:

      compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效

      test:测试依赖范围。只对于测试classpath有效

     provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api

      runtime:运行时提供。例如:jdbc驱动

    --------------

     直接依赖和间接依赖

      test2 依赖 test1,test3依赖test2

      test2 直接依赖 test1,test3间接依赖test1

     当第二依赖的范围是compile的时候,依赖可以传递

      当第二直接依赖的范围是test的时候,依赖不会得以传递

      provided和runtime后面有遇到再讲,一般很少用,可以不用掌握。

    依赖冲突

      假如test1使用junit4.10依赖,并且scope是compile,那test2,test3都可以使用test1的junit4.10,因为传递下来了

      假如test2使用junit4.9依赖,那test3会使用【就近的一个依赖】,也就是使用junit4.9

    可选依赖

      <optional> true/false<optional> 是否可选,也可以理解为是否向下传递。

      在依赖中添加optional选项决定此依赖是否向下传递,如果是true则不传递,如果是false就传递,默认为false

     

    排除依赖

    exclusions可用于排除依赖,注意exclusions是写在dependency

     

     生命周期【了解】

      Maven生命周期就是为了对所有的构建过程进行抽象和统一

      包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤。

      生命周期可以理解为构建工程的步骤。

      在Maven中有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

      Clean Lifecycle: 在进行真正的构建之前进行一些清理工作。

      Default Lifecycle: 构建的核心部分,编译,测试,打包,部署等等。

     Site Lifecycle: 生成项目报告,站点,发布站点。

     

     

     

  • 相关阅读:
    责任链
    ITERATOR(迭代器)设计模式
    CSocket必须使用stream socket不能够使用数据报 socket
    由《win32多线程程序设计》临界区的问题所想
    JavaScript 中的FileReader对象(实现上传图片预览)
    PHP中递归的实现(附例子)
    Git 与 SVN 命令学习笔记
    Apache服务器在80端口配置多域名虚拟主机的方法
    MySQL数据表range分区例子
    MySQL主从复制技术的简单实现
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/11215129.html
Copyright © 2011-2022 走看看