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>下面。
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>下面。