Maven学习笔记

一个简单的Maven项目

创建一个简单的项目

$mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook

构建一个简单的项目

$mvn install

简单的项目对象模型(Project Object Model)

Maven真正运行的POM

$mvn help:effective-pom

核心概念

Maven插件和目标(Plugins and Goals)

mvn archetype:create

这里archetype是一个插件标识而create是目标标识。

一个目标是一个明确的任务,它可以作为单独的目标运行,或者作为一个大的构建的一部分和其它目标一起运行。一个目标是Maven中的一个“工作单元(unit of work)”。

目标通过配置属性进行配置,以用来定制行为。

Maven生命周期(Lifecycle)

一个生命周期是一些阶段的序列

当Maven经过以package为结尾的默认生命周期的时候,下面的目标按顺序被执行:

resources:resources

compiler:compile

resources:testResources

compiler:testCompile

surefire:test

jar:jar

Maven坐标(Coordinates)

POM为项目命名,提供了项目的一组唯一标识符(坐标),并且通过依赖(dependencies),父(parents)和先决条件(prerequisite)来定义和其它项目的关系。

Maven坐标定义了一组标识,它们可以用来唯一标识一个项目,一个依赖,或者Maven POM里的一个插件。

groupId, artifactId, version和packaging。这些组合的标识符拼成了一个项目的坐标。

Maven空间是项目的一个坐标系统

Maven仓库(Repositories)

Maven仓库的标准是按照下面的目录格式来存储构件,相对于仓库的根目录:

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

Maven依赖管理(Dependency Management)

一个复杂的项目将会包含很多依赖,也有可能包含依赖于其它构件的依赖。这是Maven最强大的特征之一,它支持了传递性依赖(transitive dependencies)。

Maven同时也提供了一种机制,能让你排除一些里不想要的传递性依赖。(使用provided范围)

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

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

生成文档和报告。

$mvn site

这将会运行site生命周期阶段。它不像默认生命周期那样,管理代码生成,操作资源,编译,打包等等。Site生命周期只关心处理在src/site目录下的site内容,还有生成报告。

Maven提供了很完整的可配置的报告,像Clover报告检查单元测试覆盖率,JXR报告生成HTML源代码相互间引用,这在代码审查的时候非常有用,PMD报告针对各种编码问题来分析源代码,JDepend报告分析源代码中各个包之间的依赖。通过在pom.xml中配置那些报告被包含在构建中,站点报告就可以被定制了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值