zoukankan      html  css  js  c++  java
  • Maven生命周期

      一个完整的项目构建通常包含清理,编译,測试,打包,继承部署等步骤,而maven是生命周期的抽象,详细的任务都交给了插件来完毕。


    一、Maven三套生命周期


    1 clean生命周期

    1.1 pre-clean运行一次清理前须要完毕的工作

    1.2 clean清理上一次构建生成的文件

    1.3 运行一次清理后须要完毕的工作


    2 default生命周期


      是生命周期中最核心的部分包括了构建项目的全部步骤。编译,測试,打包,部署(仅仅介绍核心内容)

    2.1 source

    2.2 resource

    2.3complie

    2.4test

    2.5test-complie

    2.6 package

    2.7install

    2.8 deploy 


    3 site生命周期


      site是建立和公布项目网站。

    本文不重点介绍

     

    二、命令与生命周期

     

     用命令行运行maven任务主要还是调用maven的生命周期阶段。

    各个生命周期是相互独立的,而每一个生命周期的阶段是有前后的依赖关系的


      命令行解释

       mvn clean:    该命令会调用clean生命周期的 clean阶段。

    运行阶段为clean生命周期的pre-cleanclean阶段

       mvn clean install该命令调用clean生命周期的clean阶段和default生命周期的install阶段。

    实际运行的阶段为clean生命周期的 pre-cleanclean以及

    defualt生命周期从validateinstall的全部阶段。

    结合了两个生命周期。

     

    三、Maven 插件


      生命周期与插件的关系。

    我们先来看看maven插件存放在哪里

        maven插件定位在

    %本地仓库%orgapachemavenplugins。能够看到一些下载好的插件:


     

      具体查看请查看Maven官网

     

       插件目标Plugin Goals:


        一个插件通常能够完毕多个任务。每个任务就叫做插件目标。对于插件本身。为了能够复用代码,往往能够完毕多个任务。

    如:

        Maven-dependency-plugin 有十多个目标  dependencyanalyze

      当我们运行mvn install命令时,调用的该插件和运行的目标例如以下:



     

      将插件绑定到生命周期

       maven的生命周期与插件是相互绑定的。用以完毕构建任务

        这一过程是在生命周期的详细阶段(phase)绑定插件目标(goal)来完毕的。

    如:将maven-compiler-plugin插件的compile目标绑定到default

    生命周期的compile阶段。完毕项目的源码编译:

     

     

    如:我们编译源码


    <plugin> <!-- 编译源代码插件 -->
    		<!-- 用来编译位于src/main/java/文件夹下的主源代码 -->
    		<groupId>org.apache.maven.plugins</groupId>  <!-- 项目或者组织的唯一标志 -->
    		<artifactId>maven-compiler-plugin</artifactId> <!-- 项目的通用名称 -->
    		<version>${maven-compiler-plugin.version}</version>
    		<!-- 使用maven-compiler-plugin 指定JDK版本号和编码 -->
    		<configuration>    <!-- 通经常使用于私有不开源的plugin -->
    			<source>${maven.compile.source}</source>        <!-- 编译源代码 jdk版本号编译 -->
    			<target>${maven.compile.target}</target>
    			<encoding>${project.build.sourceEncoding}</encoding>      <!-- 用于maven中的文件拷贝 的 编码格式 -->
    		</configuration>
    	</plugin>

     

    小结:


    Maven的生命周期在项目中贯穿始终,不管是在命令行还是在构建项目时,都脱离不了生命周期的概念,构建与生命周期的关系又是当中的重点

    。主要还是要理解生命周期与插件之间的绑定石通过 phasegoals

     

     

  • 相关阅读:
    php接口安全设计浅谈
    tcp长连接、短连接、连接池的思考
    PHP单例模式及应用场
    springcloud ribbon
    springcloud eureka
    springcloud gateway
    zipkin下载地址
    用Zookeeper作为Spring cloud的配置中心
    mybaties四大对象
    java equals总结
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7049683.html
Copyright © 2011-2022 走看看