Maven-08.依赖管理-生命周期

一.生命周期 

Maven中的生命周期就是描述一次maven项目构建要经历那些阶段。包含clean,default和site三个。这三个生命周期时相互独立的。所谓相互独立,就是每套生命周期中的阶段互不干扰。 

 

 阶段是生命周期中最细化的操作。我们重点关注5个阶段,分别是clean,compile,test,package和install。在同一套生命周期中,阶段是有先后顺序的,先运行前面的阶段,再运行后面的阶段。后面的阶段依赖于前面的阶段。也就是说在一套生命周期中运行后面的阶段,前面的阶段也会运行。

在maven中的Lifecycle中可以看到这些阶段。 

那么运行install阶段时,前面的clean会不会运行,答案是不会,因为是在同一个生命周期中,当运行后面的阶段时,前面的阶段都会运行。而clean和install在不同的两套生命周期中。 

二.执行指定生命周期的两种方式

1.clean阶段 

执行clean阶段,发现target文件已经被清理。 

2.compile阶段 

执行compile阶段,发现target文件有了。 

3.test阶段

我们要执行test阶段,首先在pom.xml文件中引入单元测试依赖junit。

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
</dependency>

接着编写测试代码

package com.gjw.test;

import org.junit.Test;
import org.slf4j.Logger;

public class DemoTest {

    @Test
    public void test1() {
        System.out.println("测试方法1执行了");
    }

    @Test
    public void test2() {
        System.out.println("测试方法2执行了");
    }

    @Test
    public void test3() {
        System.out.println("测试方法3执行了");
    }
}

双击maven中的test执行 

可以发现在日志中测试程序已经执行了。 

4.package阶段

接下来我们运行package阶段。双击package,发现taget下面已经出现了打包好的jar包。同时发现日志中出现了test阶段的运行结果,这是因为在同一个生命周期中,后一个阶段的运行要依赖于前一个阶段。

5.install阶段 

最后执行install阶段,就是将打包好的jar包安装到maven的本地仓库。在执行install阶段之前,首先我们要看一下本地的maven仓库中是否有打包好的maven-project01的jar包。

如果安装好了,那么应该在本地仓库的com下gjw文件夹下,因为我们的组织名(groupId)就是com.gjw,但是发现com中根本没有gjw文件夹,因此并没有安装好。 

接着我们执行install

发现我们的com文件夹中已经有了gjw文件夹,打开后可以看到项目。

 我们发现前面的单元测试也执行了。

生命周期阶段方式二——在命令行中执行

在该项目中输入cmd打开命令行,输入mvn clean,如果能够将target清除,则执行成功。 

 

target文件夹没有了,成功

三.补充

那么如果我想只执行install而绕过单元测试可以吗?当然可以

我们选中test,点击上面的禁止符号即可。

我们再次执行package阶段。

可以发现测试单元并未执行,显示Tests are skipped. 

maven的生命周期以及生命周期的各个阶段是抽象的概念,他并不执行具体的操作。具体操作是由与其绑定maven插件来完成的,因为maven本质就是一个插件执行框架,所有的工作都是由插件执行完成的。在maven面板中可以看到这些具体的插件。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值