美文网首页
小白学Maven笔记 2——基础概念

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

作者: 莫珂 | 来源:发表于2017-04-22 22:49 被阅读0次

    构建生命周期(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笔记 2——基础概念

          本文链接:https://www.haomeiwen.com/subject/lcbjzttx.html