`
alfred.w
  • 浏览: 89899 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

 

Chapter 10. 构建生命周期

 

 

10.1.1. 清理生命周期 (clean)

 

 

       运行mvn clean将调用清理生命周期,它包含了三个生命周期阶段:

  • pre-clean

  • clean


post-clean

在每个生命周期阶段,你如果需要执行自己的任务或者通知可以使用插件maven-antrun-plugin

你也可以通过插件配置,改变原有生命周期阶段的任务例如

 

Example 10.2. 自定义Clean插件的行为

<project>
  <modelVersion>4.0.0</modelVersion>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>target-other</directory>
              <includes>
                <include>*.class</include>
              </includes>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

 


 

10.1.2. 默认生命周期 (default)


生命周期阶段 描述
validate 验证项目是否正确,以及所有为了完整构建必要的信息是否可用
generate-sources 生成所有需要包含在编译过程中的源代码
process-sources 处理源代码,比如过滤一些值
generate-resources 生成所有需要包含在打包过程中的资源文件
process-resources 复制并处理资源文件至目标目录,准备打包
compile 编译项目的源代码
process-classes 后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement)
generate-test-sources 生成所有包含在测试编译过程中的测试源码
process-test-sources 处理测试源码,比如过滤一些值
generate-test-resources 生成测试需要的资源文件
process-test-resources 复制并处理测试资源文件至测试目标目录
test-compile 编译测试源码至测试目标目录
test 使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布
prepare-package 在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现)
package 将编译好的代码打包成可分发的格式,如JARWAR,或者EAR
pre-integration-test 执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境
integration-test 如果有必要的话,处理包并发布至集成测试可以运行的环境
post-integration-test 执行一些在集成测试运行之后需要的动作。如清理集成测试环境。
verify 执行所有检查,验证包是有效的,符合质量规范
install 安装包至本地仓库,以备本地的其它项目作为依赖使用
deploy 复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)

 


 

10.1.3. 站点生命周期 (site)

Maven不仅仅能从一个项目构建软件构件,它还能为一个或者一组项目生成项目文档和报告。项目文档和站点生成有一个专有的生命周期,它包含了四个阶段:

  1. pre-site

  2. site

  3. post-site

  4. site-deploy

    mvn site


 

10.2. 打包相关生命周期

 

绑定到每个阶段的特定目标默认根据项目的打包类型设置。一个打包类型为jar的项目和一个打包类型为war的项目拥有不同的两组默认目标。

 

 

常用的打包类型,jar,pom,manven-plugin,EJB,WAR,EAR.也可以使用插件支持其他项目的打包,例如swf

 

 

10.3. 通用生命周期目标

 

 

 

Chapter 11. 构建Profile

 

 

 

11.1. Profile是用来做什么的?

Profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不同环境间构建的可移植性成为可能。

 

 

 

   构建可移植性!!!!!!!!!

一个构建的“可移植性”是指将一个项目在不同的环境中构建的难易度。

 

11.1.1.2. 环境可移植性!!!!

 

 

 

一个profile 几乎可以覆盖项目模型的所有内容

 

<project>
  <profiles>
    <profile>
      <build>
        <defaultGoal>...</defaultGoal>
        <finalName>...</finalName>
        <resources>...</resources>
        <testResources>...</testResources>
        <plugins>...</plugins>
      </build>
      <reporting>...</reporting>
      <modules>...</modules>
      <dependencies>...</dependencies>
      <dependencyManagement>...</dependencyManagement>
      <distributionManagement>...</distributionManagement>
      <repositories>...</repositories>
      <pluginRepositories>...</pluginRepositories>
      <properties>...</properties>
    </profile>
  </profiles>
</project>
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics