Maven-Maven 生命周期

  1. 生命周期定义:
    生命周期抽象了构建的各个步骤, 定义了它们的次序, 但没有提供具体的实现. 每个构建步骤可以绑定一个或者多个插件行为.

  2. 声明周期:
    生命周期由阶段组成(phase), 这些阶段是有顺序的, 并且后面的阶段依赖于前面的阶段, 用户和 Maven 最直接的交互方式就是调用这些声明周期阶段.

    • clean 生命周期: 目的是清理项目, 包含: pre-clean, clean, post-clean 三个阶段. 调用后面的阶段会导致该阶段前面的阶段也会被执行.
    • default 生命周期:
      • validate
      • initialize
      • generate-sources
      • process-sources: 处理项目主资源文件. 一般来说, 是对 src/main/resources目录的内容进行变量替换等工作后, 复制到项目输出的主 classpath 目录中.
      • generate-resources
      • process-resources
      • compile: 编译项目的主代码. 一般来说, 是编译 src/main/java 目录下的 Java 文件至项目输出的主 classpath 目录中.
      • process-classes
      • generate-test-sources
      • process-test-sources: 处理项目测试资源文件. 一般来说, 是对 src/test/resources 目录的内容进行变量替换等工作后, 复制到项目输出的测试 classpath 目录中.
      • generate-test-resources
      • process-test-resources
      • test-compile: 编译项目的测试代码. 一般来说, 是编译 src/test/java 目录下的 Java 文件至项目输出的测试 classpath 目录中.
      • process-test-classes
      • test: 使用单元测试框架运行测试, 测试代码不会被打包或者部署.
      • prepare-package
      • package: 接受编译好的代码, 打包成可发布的格式, 如 JAR.
      • pre-integration-test
      • integration-test
      • post-integration-test
      • verify
      • install: 将包安装到 Maven 本地仓库, 供本地其它 Maven 项目使用.
      • deploy: 将最终的包复制到远程仓库中, 供其它开发人员和 Maven 项目使用.
    • site 生命周期: 建立和发布项目站点, Maven 能够基于 pom 所包含的信息, 自动生成一个友好的站点, 方便团队交流和发布项目信息.
      • pre-site: 执行一些在生成项目站点之前需要完成的工作.
      • site: 生成项目站点文档.
      • post-site: 执行一些在生成项目站点之后需要完成的工作.
      • site-deploy: 将生成的项目站点发布到服务器上.
  3. 插件绑定:

    • 内置绑定: 主要的生命周期阶段都绑定了很多插件的目标.
    • 自定义绑定: 创建项目的源码 jar 包.
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
            <execution>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                    <goal>jar-no-fork</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
  4. 插件配置:

    • 命令行插件配置: 使用 -D 参数. 例如跳过测试: mvn install -Dmaven.test.skip = true
    • pox 全局配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.1</version>
        <configuration>
            <source>1.5</source>
            <target>1.5</target>
        </configuration>
    </plugin>
    
  5. 参考:
    [1] : Maven 实战

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章