小白学Maven笔记 2——基础概念

构建生命周期(Build Lifecycle)

生命周期分为:

  1. default (处理项目部署)
  2. clean(处理项目清理)
  3. site (处理生成项目站点文档)

阶段(Phase)

每一个生命周期是由不同的构建阶段(build phase)构成的

  • validate 验证项目是否正确并且所有的信息是有效的
  • compile 编译项目的源码
  • test 使用合适的单元测试框架来测试已经被编译的源码
  • package 将源码打包成指定的格式,如JAR
  • verify 对集成测试结果进行检查,以确保满足质量标准(这个没用过不太了解)
  • install 将生成的package安装到本地仓库,用于本地作为其他工程依赖来使用
  • deploy 发布package到远程仓库让别人使用(自己还没有到达这个地步,还无缘使用LOL)
    其他更多阶段请看Lifecycle Reference

以上所有的阶段(加上Lifecycle Reference中其他的)构成了 default生命周期。

坐标:

还记得上一篇我们创建工程的时候填写的信息吗?


屏幕快照 2017-04-21 23.08.25.png

在Maven中groupId+artifactId+version唯一标示了一个资源,我们可以理解为坐标。Maven中有本地仓库和 远程仓库,使用坐标搜索的时候回优先使用本地仓库,没有去远程仓库找,然后下载到本地,这也是上一篇我们打开auto import的原因,自动帮我们下载


屏幕快照 2017-04-21 23.08.52.png

插件

Maven核心是一个插件执行框架,官网插件详细介绍

  1. 构建插件(build plugins)定义在<build>标签中,类似下面
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <source>1.5</source>
        <target>1.5</target>
      </configuration>
    </plugin>
  </plugins>
</build>

2.报告插件(reporting plugins)定义在<reporting>标签中

常用标签:

<packaging>指定打包信息,默认是jar
<name>项目描述名
<url>项目地址
<description>项目描述
<developers>开发者信息
<licenses>许可证信息
<organization>组织信息

<dependencies>依赖信息
    <dependency>
            ….
            <scope></scope>依赖范围,若为test尽在test代码中能引用
            <optional></optional>是否可选
            <exclusions>排除依赖传递列表
                <exclusion>
                </exclusion>
            </exclusions>
    </dependency>
</dependencies>

<dependencyManagement>依赖管理(父模块中定义,子模块继承)
    
</dependencyManagement>

<build>构建行为

<plugins>插件列表

<parent>子模块总对于父模块的继承

<modules>聚合多个子模块

<properties>自己定义标签,使用${标签名}来使用

依赖冲突:

1.短路,优先依赖层级最少的
2.层级相同先声明则优先

上一篇:小白学Maven笔记 1——快速开始

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Maven概述 Maven定义Maven是一个项目管理和整合,统一管理jar包的工具;Maven为开发者提供了一套...
    THQ的简书阅读 810评论 0 0
  • 1 为什么使用Maven这样的构建工具 【Why】 1.1 一个项目就是一个工程 如果项目非常...
    coder_girl阅读 499评论 0 1
  • 一、为什么使用Maven这样的构建工具【why】 ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用pack...
    问题_解决_分享_讨论_最优阅读 1,258评论 0 16
  • 似乎一直这样生活下来,并没有好好回忆下这么多年到底有什么事情让自己最难忘快乐。 1小时候临近过年,爸妈都会带我去批...
    李妞儿阅读 266评论 0 0
  • 有次和番茄聊天,谈到情侣之间把对方姓名纹在自己身上,感觉很幼稚,万一以后分手了岂不是很尴尬,但是我的名字不会,KL...
    我家番茄炒蛋是甜的阅读 216评论 0 2