zoukankan      html  css  js  c++  java
  • maven的核心概念

    1 简单的核心概念

    1.1 坐标

    groupId、artifactId、version,很简单,这三个坐标定位到了该依赖的位置,有了它们就可以下载该依赖了。

    1.2 依赖

    如果一个jar包使用了另外一个jar包中的类,那么就说该jar包依赖另外一个jar包。

    1.3 仓库

    jar包放在仓库中,方便共享。

    2 难的核心概念

    2.1 生命周期

    同一套生命周期的各个阶段之间是有相互依赖关系的,后面的阶段会依赖前面的阶段,也就是说,调用后面的阶段的时候会触发前面阶段的插件的执行。

    比如maven test会触发它前面的validate、initialize、compile的执行。

    触发生命周期阶段的执行本质上是触发该阶段对应的插件的执行。

    2.1.1 生命周期和插件之间的关系

    生命周期的工作是插件完成的,生命周期和插件协同工作,密不可分。

    2.2 三套生命周期

    每套生命周期之间是相互独立的,触发某套生命周期的时候不会对其它套生命产生影响。

    2.2.1 clean生命周期

    pre-clean->clean->post-clean

    2.2.2 default生命周期

    validate->initialize->compile->test->package->verify->install->deploy

    2.2.3 site生命周期

    这套生命周期可以不管。

    生命周期是抽象的,具体的工作是由相应的插件完成的。

    2.2 插件

    2.2.1 常用的插件

    maven-shade-plugin     maven-shade-plugin 只存在一个goal shade:shade,需要将其绑定到 phase package 上。

    maven-compiler-plugin    编译。

    maven-surefire-plugin       执行测试用例的插件。

    protobuf-maven-plugin     默认绑定到generate-sources阶段,compiles main .proto definitions into Java files and attaches the generated Java sources to the project,所以,在java代码中可以访问到这些生成的java代码,这是如何做到的?

    2.2.2 插件绑定

    本质上是maven的生命周期的阶段和插件的目标相互绑定,用以完成实际的构建任务。

    2.2.3 插件所绑定的生命周期

    maven-compiler-plugin:compile <--> compile

    maven-compiler-plugin:testCompile<-->test-compile

    maven-surefire-plugin:test <--> test

    maven-shade-plugin:shade<-->package

    2.2.4 插件的目标

    每个插件有多个目标,每个目标对应一个功能。

    冒号前面是插件前缀,后面是插件目标。

    2.2.5 一个生命周期对应一个插件目标

    如果没有指定<phase>,那么就会绑定到插件默认的生命周期阶段上。如果插件没有默认生命周期阶段,那么插件目标将不会被执行。

    当多个插件目标绑定到同一生命周期阶段的时候、顺序是按照插件声明的顺序来决定目标的执行顺序。

    如果一个生命周期阶段有默认的插件目标,现在又设置了一个插件目标,那么设置的插件目标会覆盖默认的插件目标吗?

    暂时认为是覆盖的。

    2.3 继承和聚合

    这个暂放。

    3 各个插件参考资料

    http://maven.apache.org/plugins/maven-compiler-plugin/index.html

  • 相关阅读:
    损失函数
    DPM 目标检测1
    编程题
    枚举型和元类
    python 多继承
    网络基础Cisco路由交换一
    网络基础tcp/ip协议五
    网络基础tcp/ip协议四
    网络基础tcp/ip协议三
    网络基础tcp/ip协议二
  • 原文地址:https://www.cnblogs.com/hustdc/p/10736695.html
Copyright © 2011-2022 走看看