maven生命周期

maven生命周期,初始化,编译,测试,打包,集成测试,和部署。在maven中生命周期抽象了构建的各个步骤,定义了他们的次序,但没有提供具体的实现。maven采用插件机制,每个构建步骤都可以绑定一个或多个插件行为。

针对编译的插件maven-compiler-plugin,测试是由maven-surefire-plugin

maven 三套生命周期

1、clean生命周期

    pre-clean:执行一些清理前需要完成的工作

   clean:清理上一次构建生成的文件

   post-clean:执行一些清理和需要完成的工作

2、default生命周期

   定义了真正构建时所需要执行的所有步骤

  • validate
  • initialize
  • generate-sources
  • process-sources
  • generate-resources
  • process-resources    :复制和处理资源文件到target目录,准备打包;
  • compile    :编译项目的源代码;
  • process-classes
  • generate-test-sources
  • process-test-sources
  • generate-test-resources
  • process-test-resources
  • test-compile    :编译测试源代码;
  • process-test-classes
  • test    :运行测试代码;
  • prepare-package
  • package    :打包成jar或者war或者其他格式的分发包;
  • pre-integration-test
  • integration-test
  • post-integration-test
  • verify
  • install    :将打好的包安装到本地仓库,供其他项目使用;
  • deploy    :将打好的包安装到远程仓库,供其他项目使用;

3、site生命周期

目的是建立和发布项目站点

命令行与生命周期   http://maven.apache.org/plugins/index.html

mvn clean

mvn test

mvn clean install

mvn clean deploy site-deploy

自定义绑定:

用户可以根据需要将任何插件目标绑定到任何生命周期的阶段,如:将maven-source-plugin的jar-no-fork目标绑定到default生命周期的package阶段,这样,以后在执行mvn package命令打包项目时,在package阶段之后会执行源代码打包,生成如:ehcache-core-2.5.0-sources.jar形式的源码包。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <id>attach-source</id>
                    <phase>package</phase><!-- 要绑定到的生命周期的阶段,可省去 -->
                    <goals>
                        <goal>jar</goal><!-- 要绑定的插件的目标 -->
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    ……
</build>

命令行插件配置

maven-surefire-plugin提供了一个maven.test.skip参数,当值为true的时候就会跳过执行测试。

pom插件全局配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

上述配置maven-compile-plugin,告诉他编译Java1.5版本的源文件,生成与jvm1.5兼容的字节码文件

posted @ 2016-07-14 14:47  程序猿进化之路  阅读(131)  评论(0)    收藏  举报