maven_学习笔记
2013-02-05 16:51
232 查看
1.Maven拥有三套相互独立的生命周期:
clean
default
site
三套生命周期是相互独立的;
每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段是依赖于前面的阶段的.
clean(清理项目):
pre-clean:执行一些清理前需要完成的工作;
clean:清理上一次构建生产的文件;
post-clean:执行一些清理后需要完成的工作.
default(核心):
validate:验证项目是否正确和所有资源是否可用
initialize:初始化构建
generate-sources:
process-sources:处理源代码
generate-resource:
process-resources:处理项目主资源文件.对src/main/resources 目录内容进行变量替换等工作后,复制到项目输出的主classpath目录中.
compile:编译项目的主源代码
process-classes:
generate-test-sources:
process-test-sources:处理项目测试资源文件
generate-test-resources:
process-test-resources:处理测试的资源文件
test-compile:编译项目的测试代码
process-test-classes:
test:使用单元测试框架运行测试,测试代码不会被打包或部署
prepare-package:做好打包的准备
package:接受编译好的代码,打包成可发布的格式
pre-integration-test:
integration-test:
post integration-test:
verify:
install:将包安装到Maven本地仓库,供本地其他Maven项目使用
deploy:将最终的包复制到远程仓库,供其他开发人员和Maven醒目使用
site(建立和发布项目站点):
pre-site:执行一些在项目站点之前需要完成的工作
site:生产项目站点文档
post-site:执行一些在生产项目站点之前需要完成的工作
site-deploy:将生成的项目站点发布到服务器上
2.Maven坐标(参考spring3.2.x命名)
groupId:与包名表达方式类似
artifactId:定义项目中的模块.
packaging:定义项目的打包方式,例如:jar,war,ear.
version:定义Maven项目当前的版本.
classifier:该元素用来帮助定义构建输出的一些附件.
3.依赖(Maven 需要根据坐标才能找到一个或多个依赖)
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
type:依赖的类型,默认值是jar
scope:依赖的范围
optional:标记依赖是否可选
exclusions:用来排除传递性依赖
依赖范围:
compile:编译依赖范围,默认依赖范围,使用此依赖范围对于编译、测试、运行三种classpath都有效
test:测试依赖范围,只对测试classpath有效
provided:以提供测试范围,对编译和测试的classpath有效
runtime:运行时依赖,对测试和运行classpath有效,但在编译主代码时无效。
system:系统依赖范围,system依赖范围时必须通过systemPath元素显示地指定依赖文件路径。
传递性依赖:例如当我们导入org.springframework.spring-core.2.5.6.jar时,需要依赖commons-logging-1.1.1.jar
可选依赖:
<optional>true</optional>
排除依赖:
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
这样做的好处是,不能出现 groupId和artifactId相同,但version不同的两个依赖
依赖归类:
<properties>
<project.version></project.version>
</properties>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version>${project.version}</version>
</dependency>
clean
default
site
三套生命周期是相互独立的;
每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段是依赖于前面的阶段的.
clean(清理项目):
pre-clean:执行一些清理前需要完成的工作;
clean:清理上一次构建生产的文件;
post-clean:执行一些清理后需要完成的工作.
default(核心):
validate:验证项目是否正确和所有资源是否可用
initialize:初始化构建
generate-sources:
process-sources:处理源代码
generate-resource:
process-resources:处理项目主资源文件.对src/main/resources 目录内容进行变量替换等工作后,复制到项目输出的主classpath目录中.
compile:编译项目的主源代码
process-classes:
generate-test-sources:
process-test-sources:处理项目测试资源文件
generate-test-resources:
process-test-resources:处理测试的资源文件
test-compile:编译项目的测试代码
process-test-classes:
test:使用单元测试框架运行测试,测试代码不会被打包或部署
prepare-package:做好打包的准备
package:接受编译好的代码,打包成可发布的格式
pre-integration-test:
integration-test:
post integration-test:
verify:
install:将包安装到Maven本地仓库,供本地其他Maven项目使用
deploy:将最终的包复制到远程仓库,供其他开发人员和Maven醒目使用
site(建立和发布项目站点):
pre-site:执行一些在项目站点之前需要完成的工作
site:生产项目站点文档
post-site:执行一些在生产项目站点之前需要完成的工作
site-deploy:将生成的项目站点发布到服务器上
2.Maven坐标(参考spring3.2.x命名)
groupId:与包名表达方式类似
artifactId:定义项目中的模块.
packaging:定义项目的打包方式,例如:jar,war,ear.
version:定义Maven项目当前的版本.
classifier:该元素用来帮助定义构建输出的一些附件.
3.依赖(Maven 需要根据坐标才能找到一个或多个依赖)
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
type:依赖的类型,默认值是jar
scope:依赖的范围
optional:标记依赖是否可选
exclusions:用来排除传递性依赖
依赖范围:
compile:编译依赖范围,默认依赖范围,使用此依赖范围对于编译、测试、运行三种classpath都有效
test:测试依赖范围,只对测试classpath有效
provided:以提供测试范围,对编译和测试的classpath有效
runtime:运行时依赖,对测试和运行classpath有效,但在编译主代码时无效。
system:系统依赖范围,system依赖范围时必须通过systemPath元素显示地指定依赖文件路径。
传递性依赖:例如当我们导入org.springframework.spring-core.2.5.6.jar时,需要依赖commons-logging-1.1.1.jar
可选依赖:
<optional>true</optional>
排除依赖:
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
这样做的好处是,不能出现 groupId和artifactId相同,但version不同的两个依赖
依赖归类:
<properties>
<project.version></project.version>
</properties>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version>${project.version}</version>
</dependency>
相关文章推荐
- Maven学习笔记003——使用入门
- maven 学习笔记(三)安装后的一些基本配置
- [struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤
- Maven学习笔记(二)——Maven目录结构、pom.xml解析&基础命令(一)
- maven学习笔记之三、构建第一个java web工程
- Maven学习笔记(八)Maven的入门使用—2. 编写主代码
- maven学习笔记_scope设置
- Maven学习笔记004——用Archetype生成项目骨架
- Maven学习笔记
- maven 学习笔记-基础篇2011
- maven学习笔记【指定jdk】
- maven学习笔记 1
- [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld
- 使用Nexus2.x为Maven3.x搭建私服构件仓库-----学习笔记
- Maven学习笔记(1) 了解什么是Maven
- Maven学习笔记
- MAVEN学习笔记1
- 学习笔记-[Maven实战]-第三章:Maven使用入门(2)
- 学习笔记——Maven 如何处理传递性依赖
- Maven学习笔记(一)——Maven简介、下载与安装