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>











原创粉丝点击