Maven3核心概念

 

http://lantian-123.iteye.com/blog/1472008Maven3入门篇

 

Maven3核心概念

 

一、Maven插件和目标(Plugins and Goals)

 

mvn archetype:create -DgroupId=xxx -DartifactId=xxx -DpacageName=xxx

 

这条命令中就有Archetype插件的create目标,其中archetype是插件的标识、create是目标标识。一个Maven插件是一个或多个目标的集合,如Compiler插件包含一组编译源代码和测试源代码的目标。

 

二、Maven的生命周期(Lifecycle)

 

一个生命周期是一些阶段(phase)的序列。

 

 

Maven支持多种不同的生命周期,常用的位默认(default lifecycle)的生命周期。从验证项目的基本完整性阶段开始到把项目发布成产品阶段结束。

 

Maven在执行一个阶段的时候,首先会有序的执行前面的所有阶段,同时插件目标可以附着在是生命周期阶段上。当Maven经过一package作为结束的默认生命周期的时候,目标按顺序执行:

运行:mvn package 与 mvn resources:resources \  compiler:compile resources:testResources compiler:testCompile surefire:test jar:jar

能达到相同的效果

 

三、Maven坐标(co-codinates)

 

Maven定义了一组标识,用来唯一标识一个项目、一个依赖(dependency)、或者一个插件。

 

groupId,artifactId,packaging,version组成一个项目的坐标。相当于空间中的某个点。当一个项目通过依赖、插件或者父项目引用来关联另外一个项目时,Maven通过左边来定位一个项目。Maven坐标格式为:groupId:artifactId:packeging:version,以冒号分隔书写。如:mavenbook:myapp:jar:1.0-SNAPSHOT。

 

四、Maven仓库(Repositories)

 

Maven仓库是项目构件的一个集合,Maven是远程仓库下载构件和插件到本机,Manven仓库按照如下目录格式存储构件

 

/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

如:commons-email-1.1.jar

 

Maven仓库既是一个从远程仓库下载的构件的缓存,也允许项目相互依赖。如:项目A和项目B,B依赖于A产生的构件,构建项目B的时候,Maven会从本地仓库取得项目A的构件。

 

五、Maven依赖管理(Dependency Management)

 

依赖即为项目依赖的库文件。比如包含测试单元的项目中有JUnit的依赖,在pom.xml中有dependencies的定义。Maven支持传递性(transitive dependencies)

 

Maven提供了不同的依赖范围(dependency scope)

 

maven依赖关系中Scope的作用 

   

 compile: 缺省值,适用于所有阶段,会随着项目一起发布。 
   

 provided:provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编译一个servlet,但是你不会想要在打包好的 WAR中包含这个Servlet API;这个Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。

 

 runtime: 在运行时使用,但在编译的时候不需要。如JDBC驱动,而只有在运行的时候才需要JDBC驱动 实现,适用运行和测试阶段。 

   

 test:只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
 

 system:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 

 

六、站点生成和报告(Site Generation and Reporting)

 

Maven能够生成文档和报告。运行 mvn site,在target/site/index.html下可以看到一个详细的测试结果的描述,API的JavaDoc文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值