zoukankan      html  css  js  c++  java
  • Maven运行原理

    说得很精彩,通俗易懂。https://www.jianshu.com/p/0fb5e3fb704d

    我作一个自己的总结:

      Maven的原理从POM(Project Object Model)和Lifecycle(生命周期)说起,pom文件其实就是POM对象的映射,定义依赖groupId、artifactId和version可以定位到jar包路径,可以继承以及定义其他属性,类似Java类。查找顺序是本地仓库-->私服/中央仓库。

      所有POM对象都继承自一个Super POM根对象,它很像Java中的Object。

      Lifecycle对应多个phase(阶段),类似年对应春夏秋冬,定义了流程,就像是Java中的接口,约定规范。plugin也是maven项目,包含了一个或多个goal,每个phase对应一个goal,goal在maven中就是一个Mojo(Maven old java object)担当实现类的角色,

      具体操作在goal的execute()方法中实现。

      Maven设计规范中有一个是“约定大于配置”(convention over configuration),Super POM中定义了Lifecycle每一步goal去哪里找对应的源文件,比如compile默认从/src/main/java下查找源文件进行编译。

      Super POM对应的pom.xml在maven安装目录下lib/maven-model-builder-3.0.3.jar:org/apache/maven/model/pom-4.0.0.xml,里面定义了默认配置。

  • 相关阅读:
    pipeline流水线语法格式
    nexus私服配置npm、nuget、pypi
    正则表达式-grep
    awk 经典案例
    nginx安装,配置,及高可用
    git remote add origin错误
    [转]Git 撤销操作
    [转]git命令之git remote的用法
    [转]git学习------>git-rev-parse命令初识
    转 gerrit
  • 原文地址:https://www.cnblogs.com/zou-rong/p/12533126.html
Copyright © 2011-2022 走看看