• Maven相关介绍


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

    生命周期

      Maven定义了三套生命周期:Clean、Default、Site,每个生命周期都包含了一些阶段(phase)。三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase。执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase。

    • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
    • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
    • Site Lifecycle 生成项目报告,站点,发布站点。

    Clean生命周期一共包含三个阶段:

    • pre-clean 执行一些需要在clean之前完成的工作
    • clean 移除所有上一次构建生成的文件
    • post-clean 执行一些需要在clean之后立刻完成的工作

    Site生命周期包括以下各个阶段:

    • pre-site 执行一些需要在生成站点文档之前完成的工作
    • site 生成项目的站点文档
    • post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    • site-deploy 将生成的站点文档部署到特定的服务器上

    Default生命周期:

    • validate
    • initialize
    • generate-sources
    • process-sources
    • generate-resources
    • process-resources 复制和处理资源文件到target目录,准备打包
    • compile 编译项目的源代码
    • process-classes
    • generate-test-sources
    • process-test-sources
    • generate-test-resources
    • process-test-resources
    • test-compile 编译测试源代码
    • process-test-classes
    • test 运行测试代码
    • prepare-package
    • package 打包成jar或者war或者其他格式的分发包
    • pre-integration-test
    • integration-test
    • post-integration-test
    • verify
    • install 将打好的包安装到本地仓库,供其他项目使用
    • deploy 将打好的包安装到远程仓库,供其他项目使用

    Maven插件

      Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。

      用户可以通过两种方式调用Maven插件目标。第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定,这样用户在命令行只是输入生命周期阶段而已,例如Maven默认将maven-compiler-plugin的compile目标与 compile生命周期阶段绑定,因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。第二种方式是直接在命令行指定要执行的插件目标,例如mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关。

      Maven官方有两个插件列表,第一个列 表的GroupId为org.apache.maven.plugins,这里的插件最为成熟,具体地址为:http://maven.apache.org/plugins/index.html。第二个列表的GroupId为org.codehaus.mojo,这里的插件没有那么核心,但也有不少十分有用,其地址为:http://mojo.codehaus.org/plugins.html。

    绑定插件目标(goals)到生命周期的具体阶段(phase):

    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <executions> <!--该插件有多个目标-->
          <execution>
            <id>default-compile</id>
            <phase>compile</phase> <!--绑定到的生命周期-->
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
            ...
            </configuration>
          </execution>
          <execution>
            <id>default-testCompile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
            <configuration>
            ...  
            </configuration>
          </execution>
        </executions>
        <configuration>
         ...
        </configuration>
      </plugin>

    参考博客:

    http://juvenshun.iteye.com/blog/213959

    http://www.cnblogs.com/luotaoyeah/p/3819001.html

    http://www.cnblogs.com/crazy-fox/archive/2012/02/09/2343722.html

  • 相关阅读:
    局域网的组建方案
    网络的分类
    设置Windows的TCP/IP属性和内部网络号码
    在Windows8工作站上安装可靠多播协议
    在Windows Server 2012服务器上安装可靠多播协议
    【转】HTTP协议详解
    局域网的通信协议
    局域网的拓扑结构
    Shiro学习笔记(5)——web集成
    IT增值服务,客户案例(一)--山东青岛在职人士,2年.Net经验,转Java开发半年
  • 原文地址:https://www.cnblogs.com/jieyuefeng/p/5769353.html
Copyright © 2020-2023  润新知