廖雪峰Java12maven基础-1maven入门-3构建流程

本文介绍了Maven这一Java项目管理和构建工具,包括其标准化项目结构、构建流程和依赖管理等功能。阐述了Maven的生命周期、阶段和目标,说明了如何脱离IDE使用命令行构建项目,还指出无依赖时可直接运行,引入依赖则可能执行失败。

maven是一个Java项目管理和构建工具:

  • 标准化项目结构
  • 标准化构建流程(编译、打包、发布)
  • 依赖管理

Maven的构建流程

  • clean 删除所有编译生成的文件
  • compile 编译源码、编译测试源码
  • test 运行测试
  • package 打包为jar/war

maven的生命周期Lifecycle是由一系列phase构成:

  • clean
  • compile
  • test

一个Lifecycle可以包含clean,compile,test三个Phase。有一些phase依赖于其他的Phase,有一些是独立的,如:

  • 要执行test,必须先执行compile
  • 执行clean,是不需要执行其他的Phase的

使用maven构建项目就是执行指定的Phase:

  • mvn compile: 将执行compile这个Phase
  • mvn clean test: 将执行clean、compile、test这些Phase

执行一个Phase实际上是执行了一系列Phase,直到该Phase为止:例如执行mvn compile

  • validate
  • initialize
  • generate-sources
  • process-sources
  • generate-resources
  • process-resources
  • compile

因为我们通常没有在配置文件pom.xml中定义相关的设置,所以这些Phase在执行过程中什么也不做。

maven执行一个Phase又会触发一个或多个Goal

如何脱离IDE,使用命令行通过maven构建项目?

没有依赖其他jar,可以直接运行成功

package com.forme;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}
mvn clean package
java -cp ./OneWorld-1.0-SNAPSHOT.jar  com.forme.App

1418970-20190626204014580-1241212663.png

如果引入其他依赖,因为这种方式打出的jar包不包含任何依赖,因此会执行失败

1418970-20190626205359004-643689870.png

package com.forme;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        Log log = LogFactory.getLog(App.class);
        log.info("Hello,world!");
    }
}

1418970-20190626205336743-1305273715.png

总结:

  • 理解maven的概念:Lifecycle\Phase\Goal
    * 使用maven构建项目就是按顺序执行一系列Phase
    * 执行Lifecycle就是按顺序执行一系列Phase
    * 每执行一个Phase,都会执行该Phase绑定的若干Goal
    * Goal是最小执行任务单元
  • 常用的命令:mvn clean test(打出的jar包不会包含依赖)

转载于:https://www.cnblogs.com/csj2018/p/11061820.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值