Chinaunix首页 | 论坛 | 博客
  • 博客访问: 120228
  • 博文数量: 25
  • 博客积分: 1436
  • 博客等级: 上尉
  • 技术积分: 256
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 10:10
文章分类

全部博文(25)

文章存档

2016年(1)

2015年(5)

2012年(1)

2011年(3)

2010年(6)

2009年(8)

2008年(1)

我的朋友

分类: Java

2015-09-23 12:05:25

Maven的生命周期
Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。(page97)
每个生命周期包含一些阶段(phase),这些阶段时有顺序的,并且后面的阶段依赖于前面的阶段。
较之于生命周期阶段的前后依赖关系,三套生命周期本身是相互独立的,用户可以仅仅调用clean生命周期的某个阶段,后者仅仅调用default生命周期的某个阶段,而不会对其他生命周期产生任何影响。

clean生命周期------clean生命周期的目的是清理项目,它包含三个阶段(phase)
    1)pre-clean     //执行一些清理前完成的工作
    2)clean         //清理上一次构建生成的文件
    3)post-clean    //执行一些清理后完成的工作

default生命周期------default生命周期定义了真正构建时所需要执行的所有步骤,它是所有生命周期中最核心的部分。
    1)validate
    2)initialize
    3)generate-sources
    4)process-sources           //处理项目主资源文件。一般来说,是对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中
    5)generate-resources
    6)process-resources
    7)compile                   //编译项目的主源码。一般来说,是对src/main/jave目录下的java文件至项目输出的主classpath目录中。
    8)process-classes
    9)generate-test-source
   10)process-test-source       //处理项目测试资源文件。一般来说,是对src/test/resources目录的内容进行变量替换等工作后,复制到项目输出的测试classpath目录中
   11)generate-test-resource
   12)process-test-resource
   13)test-compile              //编译项目的测试代码。一般来说,是对src/test/jave目录下的java文件至项目输出的测试classpath目录中。
   14)process-test-classes
   15)test                      //使用单元测试框架运行测试,测试代码不会被打包或部署。
   16)prepare-package
   17)package                   //接受编译好的代码,打包成可发布的格式,如JAR。
   18)pre-integration-test
   19)integration-test
   20)post-integration-test
   21)verify
   22)install                   //将包安装到Maven本地仓库,供本地其他Maven项目使用。
   23)deploy                    //将最终的包复制到远程仓库,供其他开发人员和Maven项目使用。

site生命周期------site生命周期的目的是建立和发布项目站点,Maven能够基于POM所包含的信息,自动生成一个友好的站点,方便团队交流和发布项目信息。
    1)pre-site      //执行一些在生成项目站点之前需要完成的工作。
    2)site          //生成项目站点文档
    3)post-site     //执行一些在生成项目站点之后需要完成的工作。
    4)site-deploy   //将生成的项目站点发布到服务器上。


由于历史原因,Maven的核心插件之一————compiler插件默认只支持编译java1.3,因此需要配置该插件使其支持java5或更高版本。(page33)
配置maven-compiler-plugin支持java5或更高版本
<project>
...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>      //如果用的是java7,source的值就是1.7
          <target>1.5</target>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
...
</project>
plugin元素在POM中的相对位置应该在<project><build><plugins>下面。
阅读(395) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~