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兼容的字节码文件