maven_学习笔记
来源:互联网 发布:淘宝交保证金的类目 编辑:程序博客网 时间:2024/06/10 05:25
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_学习笔记
- maven_常用命令
- maven_安装
- Maven_入门
- MAVEN_生命周期
- Maven_基础
- Maven_学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- maven_部署工程到私服
- maven_包丢失
- maven_仓库详解
- Maven_中文编码问题
- MAVEN_依赖管理
- Maven_使用和注意事项
- maven_如何导包
- maven_添加memcached-java-client
- Maven_生成项目站点报告
- MAVEN_下载、设置以及简介
- Maven_插件和私服
- Android下getService和getSystemService
- java利器---jodd
- 百度地图SDK for Android【Demo兴趣点搜索】
- HTML5中微数据的使用举例
- storm源代码编译
- maven_学习笔记
- Android应用程序开发入门——基础概念
- uploadify 上传
- 使用opencv2.0的haar算法人脸检测分类器训练xml
- 用jQuery.ui.sortable实现拖拽排序
- jbpm4.3+struts2+spring3+hibernate3整合(二)之权限管理
- ie打开特定网站提示关闭问题的解决
- Jenkins Xvnc报错
- ruby 163 发送 邮件