zoukankan      html  css  js  c++  java
  • maven

    1、Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑

    2、Maven能解决的问题

    依赖管理:maven工程对jar包的管理过程

    项目的一键构建:指的是项目从编译、测试、运行、打包、安装,部署整个过程都交给maven进行管理,这个过程称为构建。一键构建指的是整个构建过程,使用maven一个命令可以轻松完成整个工作

    3、Maven标准目录结构/约定配置

    Maven提倡使用一个共同的标准目录结构,Maven使用约定优于配置的原则,尽可能的遵守这样的目录结构

    存放pom.xml和所有的子目录:${basedir}

    项目的java源代码:${basedir}/src/main/java

    项目的资源,比如说property文件,springmvc.xml:${basedir}/src/main/resources

    项目的测试类,比如说Junit代码:${basedir}/src/test/java

    测试用的资源:${basedir}/src/test/resources

    web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面:${basedir}/src/main/webapp/WEB-INF

    打包输出目录:${basedir}/target

    编译输出目录:${basedir}/target/classes

    测试编译输出目录:${basedir}/target/test-classes

    Maven只会自动运行符合该命名规则的测试类:Test.java

    Maven默认的本地仓库目录的位置:~/.m2/repository

    4、Maven POM

    POM(Project Object Model,项目对象模型)是Maven工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等

    执行任务或目标时,Maven会在当前目录中查找POM。它读取POM,获取所需的配置信息,然后执行目标

    POM中可以指定以下配置:项目依赖;插件;执行目标;项目构建profile;项目版本;项目开发者列表;相关邮件列表信息

    在创建POM之前,首先需要描述项目组(groupId),项目的唯一ID

    5、常用命令

    mvn clean -->清除之前在本地编译生成的target目录

    mvn compile-->编译src/main下的文件

    mvn test-->编译src/test下的文件,同时也编译了src/main下的代码

    mvn package-->编译src/main和src/test下的文件,同时打包war、jar

    mvn install-->编译src/main和src/test下的文件,同时打包war、jar,并把生成的包放到本地仓库

    6、Maven构建生命周期

    Maven构建生命周期定义了一个项目构建跟发布的过程

    一个典型的Maven构建(build)生命周期是由以下几个阶段的序列组成的:

    默认生命周期:

        验证:validate======》验证项目======》验证项目是否正确且所有必须信息是可用的

        编译:compile======》执行编译======》源代码编译在此阶段完成

        测试:test======》测试======》使用适当的单元测试框架运行测试

        打包:package======》打包======》创建JAR/WAR包如在pom.xml中定义提及的包

        检查:verify======》检查======》对集成测试的结果进行检查,以保证质量达标

        安装:install======》安装======》安装打包的项目到本地仓库,以供其他项目使用

        发布:deploy======》部署======》拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

    清理生命周期:

        清除项目编译信息:clean

    标准的生命周期:

    clean:项目清理的处理

    default或build:项目部署的处理

    site:项目站点文档创建的处理

    7、Maven构建配置文件

    构建配置文件是一系列的配置项的值,可以用来设置或者覆盖Maven构建默认值

    8、Maven仓库

    在Maven的术语中,仓库是一个位置。Maven仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven仓库能帮助管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方

    Maven依赖搜索顺序:本地仓库======》中央仓库======》远程仓库

    9、Maven插件

    Maven有以下三个标准的生命周期:

    clean:项目清理的处理

    default或build:项目部署的处理

    site:项目站点文档创建的处理

    每个生命周期中都包含着一系列的阶段,这些阶段就相当于Maven提供的统一的接口,然后这些阶段的实现由Maven的插件来完成

    在输入mvn命令的时候,比如mvn clean,clean对应的就是Clean生命周期中的clean阶段。但是clean的具体操作是由maven-clean-plugin来实现的

    Maven生命周期的每一个阶段的具体实现都是由Maven插件实现的

    Maven实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven插件通常被用来:

    创建jar文件;创建war文件;编译代码文件;代码单元测试;创建工程文档;创建工程报告

    插件类型

    Maven提供了下面两种类型的插件

    Build plugins======》在构建时执行,并在pom.xml的元素中配置

    Reporting plugins======》在网站生成过程中执行,并在pom.xml的元素中配置

    常用插件

    clean======》构建之后清理目标文件。删除目标目录

    compiler======》编译Java源文件

    surefile======》运行JUnit单元测试。创建测试报告

    jar======》从当前工程中构建JAR文件

    war======》从当前工程中构建WAR文件

    javadoc======》为工程生成Javadoc

    antrun======》从构建过程的任意一个阶段中运行一个ant任务的集合

    10、概念模型图

    pom文件:项目自身信息;项目运行所依赖的jar包信息;项目运行环境信息,比如:jdk,tomcat信息

    依赖管理模型中放的是:jar包坐标信息  --> 公司组织的名称<groupId></groupId> + 项目名<artifactId></artifactId> + 版本号<version></version>

    默认生命周期:compile、test、package、install、deploy  每一个构建项目的命令都对应了maven底层一个插件

    11、Maven构建Java项目

    Maven使用原型archtype插件创建项目。要创建一个简单的Java应用,使用maven-archtype-quickstart插件

    12、idea继承maven插件

    13、使用骨架创建maven的java工程-->java

    14、不使用骨架创建maven的java工程

    15、使用骨架创建maven的web工程-->webapp

    16、maven工程servlet实例之指定web

  • 相关阅读:
    HTTP Status 500
    并发编程的常见约束
    面试之数据库面试题
    HashMap实现原理
    数据结构二叉树知识点总结
    十大经典排序算法详细总结(含JAVA代码实现)
    tensorflow里面共享变量、name_scope, variable_scope等如何理解
    Mxnet学习资源
    测试1
    tensorflow prelu的实现细节
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13198004.html
Copyright © 2011-2022 走看看