zoukankan      html  css  js  c++  java
  • maven生命周期和插件

    maven生命周期和插件

    生命周期

    maven的生命周期有三套,互相独立。每个生命周期含有不同阶段,常用如下

    • clean 清理项目
      • pre-clean 执行清理前需要完成的工作
      • clean 清理上一次构建生成的文件
      • post-clean 执行清理后需要完成的工作
    • default 构建项目
      • validate 验证项目正确,所有必需的信息都有
      • initialize 初始化编译状态,例如创建target文件夹
      • generate-source
      • process-source 主资源文件变量替换,复制至主classpath目录
      • generate-resources
      • process-resources
      • compile 编译主源码至主classpath目录
      • process-classes
      • generator-test-sources
      • process-test-sources 测试资源文件变量替换,复制至测试classpath目录
      • generate-test-resources
      • process-test-resources
      • test-compile 编译测试源码至测试classpath目录
      • process-test-classes
      • test 执行测试case,测试代码不会被打包
      • prepare-package
      • package 将编译好的代码打包成可发布的格式
      • pre-integration-test
      • integration-test
      • post-integration-test
      • verify 核实包是有效合规,达到质量标准
      • install 将包安装到maven本地仓库
      • deploy 将包复制到远程仓库
    • site 构件站点
      • pre-site
      • site 生成项目站点文档
      • post-site
      • site-deploy 将生成的项目站点发布到服务器上

    maven命令可以调用maven的生命周期阶段完成构建,不同生命周期无依赖,同一生命周期的阶段前后是有依赖的。

    example:
        mvn clean install site

    插件

    插件目标是插件对应的某一种功能,可以和maven生命周期的阶段绑定。

    默认绑定

    生命周期阶段插件目标
    process-resources maven-resource-plugin:resources
    compile maven-compiler-plugin:compile
    process-test-resource maven-resource-plugin:testResources
    test-compile maven-compile-plugin:testCompile
    test maven-surefire-plugin:test
    package maven-jar-plugin:jar
    install maven-install-plugin:install
    deploy maven-deploy-plugin:deploy

    自定义绑定

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>attach source</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

    上面的代码创建了一个自定义的绑定,在verify阶段绑定了maven-source-plugin:jar-no-fork插件目标。作用是在verify阶段生成项目源码包,调用命令为maven verify

    插件配置

    • 命令行配置
      使用-D参数配置,例如

      mvn package -Dmaven.test.skip=true
    • pom文件配置
      使用<plugin>标签内的<configration>配置,例如

          <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
              </configuration>
          </plugin>

      上面的代码配置了compile插件编译1.8版本的源文件

    描述插件

    插件解析机制

    maven命令也可以调用maven的插件目标来完成构建。
    分析命令

    mvn dependency:tree

    插件的定位也需要三要素:groupid,artifactid,version。在上述命令中dependency称为插件前缀,tree称为插件目标。根据插件前缀定位插件坐标。

    1. 获取插件meta.xml信息。插件仓库的默认地址是http://repo1.maven.org/maven2/org/apache/maven/plugins。获取该目录下的maven-metadata.xml。
    2. 查找前缀对应的artifactid为maven-dependency-plugin,因为查得到所以确认groupid为org.apache.maven.plugins,如果查不到则会去配置的其它仓库重复步骤1,所有配置的仓库均找不到则报错。

      <plugin>
          <name>Apache Maven Dependency Plugin</name>
          <prefix>dependency</prefix>
          <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
    3. 确定好插件的groupid和artifactid,根据这两个信息查找插件的metadata.xml,地址为http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/maven-metadata.xml,版本信息即可确定,maven 3默认使用release版本,所以version为2.10
    4. 所以实际执行的命令为

      mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:tree
  • 相关阅读:
    剑指OFFER----面试题54. 二叉搜索树的第k大节点
    剑指OFFER----面试题53
    剑指OFFER----面试题53
    DevExpress ASP.NET Core v19.1版本亮点:Visual Studio集成
    Kendo UI for jQuery使用教程:初始化jQuery插件
    代码自动补全插件CodeMix全新发布CI 2019.7.15|改进CSS颜色辅助
    MyEclipse使用教程:使用工作集组织工作区
    DevExpress ASP.NET Core v19.1版本亮点:Pivot Grid控件等
    Kendo UI for jQuery使用教程:小部件DOM元素结构
    MyEclipse使用教程——使用DevStyle Icon Designer(二)
  • 原文地址:https://www.cnblogs.com/Rambo635755402/p/5728950.html
Copyright © 2011-2022 走看看