一个简单的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中配置那些报告被包含在构建中,站点报告就可以被定制了。
<!--EndFragment-->
分享到:
相关推荐
maven学习笔记maven学习笔记maven学习笔记
**Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...
** Maven基础入门 ** Maven是一个Java项目管理工具,它主要负责构建、依赖管理和项目信息管理。...在`maven_study_01`的学习笔记中,你可以找到更多关于Maven的基础知识和实践案例,帮助你快速上手并掌握这一工具。
maven学习笔记整理
在“培训机构传出的maven学习笔记”中,我们可能涵盖以下几个关键知识点: 1. **Maven的基本概念**:理解Maven的核心概念,如POM.xml文件、仓库(本地仓库和中央仓库)、生命周期和构建阶段(如clean、compile、...
【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...
** Maven学习笔记详解 ** Maven,作为Java项目管理和构建工具,是开发人员不可或缺的利器。它通过使用一种标准化的项目对象模型(Project Object Model,POM)来管理项目的依赖关系,构建过程以及配置信息。Maven...
【mybatis_maven学习笔记】 在Java开发领域,MyBatis和Maven是两个不可或缺的工具,它们分别在数据访问层和项目构建方面扮演着重要角色。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
### 个人Maven学习笔记 #### 为什么使用Maven? 在软件开发过程中,尤其是在使用Java进行后端开发时,项目通常会依赖大量的第三方库或框架。如果没有统一的管理工具,这些依赖很容易出现版本冲突的问题,增加了...
【Maven学习笔记】 Maven是一个强大的项目管理和构建工具,主要应用于Java开发领域。它能够自动管理项目的依赖关系,帮助开发者解决因jar包版本冲突、依赖管理混乱等问题带来的困扰。Maven通过制定一套规范化的项目...
**Maven学习笔记大全** Maven是一个强大的Java项目管理工具,它通过项目对象模型(Project Object Model,简称POM)来管理和构建项目。POM是一个XML文件,包含了项目的配置信息,如依赖、构建过程和插件设置。Maven...
【标题】:“201205_Maven学习笔记1.rar”揭示了关于Maven的深入学习内容,这个压缩包包含了一系列文档,旨在帮助开发者更好地理解和应用Maven这一强大的Java项目管理和构建工具。 【描述】:尽管描述部分是空的,...
内容概要:maven学习笔记,适合刚接触maven的人能让你快速入门。 适用人群:大学生或者初基础maven的人 使用场景及目标:idea集成maven,用来下载依赖包
【标题】"201205_Maven学习笔记3.rar"所涵盖的知识点主要集中在Maven的使用和集成上,这是一个关于Maven的详细学习资料压缩包,包含多个文档,帮助用户理解并掌握Maven在实际开发中的应用。Maven是一个强大的Java...
Maven学习笔记,使用中遇到的问题,集成eclipse的各种坑,以便记录,为了以后复习使用。