maven 父maven_Maven的鸟瞰图

maven 父maven

我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目。 然后,Maven查看我们项目的配置文件(亲切地称为POM),神奇地找出要执行的操作,并且,嘿,您的构建已完成。 我想我们经常这样做,以至于我们从来没有考虑过幕后发生的事情,在某些情况下甚至从未了解过发生了什么。 该博客简要介绍了Maven构建生命周期,并揭示了在您发出诸如mvn clean install之类的命令时会发生什么。

如果您曾经阅读过Maven文档,那么您将了解到Maven都是关于面向对象的分层构建结构。 在本文中,有三个主要伪像:构建生命周期,构建阶段和目标,因此,一个很好的起点是解释这些术语之间的关系。 看下面的UML图:

直接进入,您会看到Maven HAS 1具有一个或多个构建生命周期,每个生命周期具有一个或多个构建阶段,它们以给定的顺序执行。 同样,每个构建阶段都有一个或多个构建目标,这些目标也将以给定的顺序执行。

定义构建阶段的一个好方法是举一个例子。 Maven文档列出了所谓的默认生命周期,以下是其构建阶段:

  1. 验证 –验证项目是否正确并且所有必要信息均可用
  2. 编译 –编译项目的源代码
  3. 测试 –使用合适的单元测试框架测试已编译的源代码。 这些测试不应要求将代码打包或部署
  4. 打包 –接受编译后的代码,并将其打包为可分发的格式,例如JAR。
  5. 集成测试 –处理并在必要时将程序包部署到可以运行集成测试的环境中
  6. 验证 –运行任何检查以验证包装是否有效并符合质量标准
  7. install –将软件包安装到本地存储库中,以作为本地其他项目中的依赖项
  8. 部署 –在集成或发布环境中完成,将最终程序包复制到远程存储库,以便与其他开发人员和项目共享。

因此,我们可以将构建阶段定义为照顾构建生命周期的一部分的阶段,例如编译或测试项目。

您可以通过在命令行上指定生成阶段来告诉Maven生成项目。 例如:

mvn install

…表示“在默认的构建生命周期中执行直到安装阶段的所有构建阶段,包括安装阶段”。
…发行了一张

mvn clean install

…表示“将清洁生命周期的所有构建阶段进行到(包括) 清洁构建阶段,然后在默认构建生命周期中执行直到安装阶段的所有构建阶段,包括安装阶段”。

由此可以推断出

mvn test

…命令将执行验证构建阶段,并执行其目标; 然后是编译阶段,执行其目标,最后是测试阶段,执行其目标。

那么,目标是什么? 在Maven世界中,目标可以定义为单个任务或工作,实际上可以对构建项目起到实际作用。 如果我们将Maven与您可能所在的公司进行比较,则生命周期将是董事会,构建阶段是中层管理人员以及完成工作的工人的目标。

大多数构建阶段都附带有默认目标,例如,您可能已经猜到, 编译器构建阶段绑定到了compile:compile目标,同样, 安装构建阶段也绑定到install:install目标。

您还可以使用POM文件中的<plugin>元素将您自己的目标绑定到阶段,这可以用于覆盖目标的默认行为或添加新目标和新行为。

关于目标 s最后要注意的一点是,它们通常与POM的包装类型相关联。 例如,这是有道理的,例如:editor:compile目标与jarejb打包相关联,但就POMwarear包而言,这毫无意义。

阅读本文时,您可能已经了解到,按照惯例,目标名称包含冒号,而构建阶段的名称则不包含。 这使您可以在Maven命令行上指定目标,而不会将它们与构建阶段混淆。 例如:

mvn compiler:compile

…将执行compile:compile目标,该目标处于默认构建生命周期的编译器构建阶段。 而且,一点点混在一起…

mvn install tomcat:redeploy

…将在默认的构建生命周期中执行直到安装 (包括安装 )的所有构建阶段,然后执行Tomcat Mojo中的tomcat:redeploy目标。

那就是一英里高的鸟瞰Maven。

1 字的UML感。

参考: Captain Debug's Blog博客中JCG合作伙伴 Roger Hughes 的Maven鸟瞰图


翻译自: https://www.javacodegeeks.com/2012/06/birdss-eye-view-of-maven.html

maven 父maven

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值