美文网首页
Maven笔记 - 3. Maven生命周期

Maven笔记 - 3. Maven生命周期

作者: donglq | 来源:发表于2018-12-11 17:45 被阅读0次

    概念

    • lifecycle 生命周期
    • phases 阶段。生命周期由多个阶段组成
    • goals 目标。每个阶段都可以有多个目标被执行

    Maven有3个内置生命周期

    • default 处理项目构建和部署
    • clean 清除Maven产生的文件和目录
    • site 处理项目文档的创建

    备注

    • Maven以被指定的阶段(phase)为基础推断使用的生命周期(lifecycle)。如==package==阶段表明使用==default==生命周期。
    • 每个阶段(phase)由多个插件目标(plugin goals)组成。一个插件目标是一个特定的用来构建项目的任务。有一些目标只在特定的阶段起作用(例如:Compiler插件的的compile目标只在compile阶段起作用,但是CheckStyle插件的checkstyle目标可以在任何阶段运行)。所以有一些目标是被绑定到特定的生命周期的阶段的。

    生命周期的重要阶段

    clean生命周期
    • clean阶段 移除所有由Maven在构建阶段创建的文件和目录。
    site生命周期
    • site阶段 产生项目的文档
    default生命周期
    • validate阶段 校验所有项目信息是否存在和正确
    • process-resources阶段 复制项目resources到目标目录中打包
    • compile阶段 编译源码
    • test阶段 运行单元测试
    • integration-test阶段 在集成测试环境中处理打包
    • verify阶段 运行校验来检验打包的有效性
    • install阶段 将打好的包发布到本地仓库
    • deploy阶段 将打好的包发布到配置的仓库中

    关于阶段、插件和目标的表格

    阶段 插件 目标
    clean Maven Clean plugin clean
    site Maven Site plugin site
    process-resources Maven Resources plugin resource
    compile Maven Compiler plugin compile
    test Maven Surefire plugin test
    package Varies based on the packaging; for instance, the Maven JAR plugin jar(in the case of a Maven JAR plugin)
    install Maven install plugin install
    deploy Maven deploy plugin deploy

    配置文件

    Maven提供了三种类型的配置文件

    • 项目配置文件:定义在项目的pom文件中
    • 用户配置文件:定义在用户settings文件中(用户HOME路径的.m2子路径中)
    • 全局配置文件:定义在全局settings文件中(M2_HOME的conf路径中)
    配置文件属性
    pom.xml中
    <profile>
        <id>test</id>
        <activation>...</activation>
        <build>...</build>
        <modules>...</modules>
        <repositories>...</repositories>
        <pluginRepositories>...</pluginRepositories>
        <dependencies>...</dependencies>
        <reporting>...</reporting>
        <dependencyManagement>...</dependencyManagement>
        <distributionManagement>...</distributionManagement>
    </profile>
    
    settings.xml中
    <profile>
        <id>test</id>
        <activation>...</activation>
        <repositories>...</repositories>
        <pluginRepositories>...</pluginRepositories>
        <properties>…</properties>
    </profile>
    
    Profiles激活方式
    • 显性激活
    mvn -P dev package
    
    • 通过settings
    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>
    
    • 依赖于环境变量激活
    <profile>
        <activation>
            <property>
                <name>debug</name>
            </property>
        </activation>
        ...
    </profile>
    

    如果系统属性debug被定义并且有值,这个 profile会被激活。

    • 依赖于OS设置
    <profile>
        <activation>
            <os>
                <family>Windows</family>
            </os>
        </activation>
        ...
    </profile>
    

    此配置在Windows系统中会被激活。

    • 存在或者缺失某个文件
    <profile>
        <activation>
            <file>
                <missing>target/site</missing>
            </file>
        </activation>
    </profile>
    

    如果target/site文件缺失,此配置将会激活。

    属性

    属性类型
    • 环境变量(Environment variables):带有前缀env.的变量,将返回shell的环境变量值。如${env.PATH}将返回PATH变量。
    • pom变量:带有前缀project.的变量,将返回pom文件中元素的值。如${project.version}将返回pom文件中<version>标签的值。
    • settings变量:带有前缀settings.的变量,将返回settings文件中元素的值。如${settings.offline}将返回settings中<offline>标签的值。
    • Java属性:在Java中任何可以通过System.getProperties()方法访问的属性。如${java.home}。
    • 正常属性:在<properties>标签中定于的属性。

    相关文章

      网友评论

          本文标题:Maven笔记 - 3. Maven生命周期

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