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文档。
分享到:
相关推荐
认识Maven。Maven安装,Maven核心概念,约定配置,坐标和仓库,POM,依赖管理,构建的总结,聚合与继承的区别。的脑图
这份资料源自工作经验 从maven的核心概念讲解开来,直到构建一个简单的项目和一个复杂的项目,包含源代码。 比较全面。
Maven的核心概念包括POM、坐标、仓库、生命周期、插件、依赖管理。 3、什么是POM? POM是Maven项目的核心文件,它是Project Object Model(项目对象模型)的缩写。POM以XML格式编写,POM文件包含了项目的基本信息; ...
本文将介绍 Maven 的基本概念、核心功能和优势,以及它在项目开发中的重要作用。 第一部分:Maven 的基本概念 解释 Maven 的基本概念,包括项目对象模型(POM)、坐标和仓库等。介绍如何使用 POM 文件来描述项目的...
写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven ...然后下篇就讲解一下 maven 的核心概念。写这两篇文章特意回避了复杂的示例,也不使用 IDE ,目的是排除干扰,着重于 maven 本身
第3课 理解Maven核心概念(一) 第4课 使用Maven核心概念(二) 第5课 使用Maven创建web项目 第6课 使用Maven构建多模块项目(一) 第7课 使用Maven构建多模块项目(二) 第8课 使用Nexus搭建Maven私服 第9课 使用...
何为Maven 构建,依赖管理,项目信息聚合 Maven核心概念 坐标,依赖,仓库,生命周期,插件 Maven最佳实践 创建、打包、发布、版本管理 项目实战 Nexus(Todo…) M2eclipse(Todo…)
基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。 如果您认为已发现错误,请在提交问题。文献资料可以在上找到更多信息。 有关Maven使用的问题应发布在。在哪里可以获得最新版本?...
本文主要是关注Maven中的重要概念,并以一个实例来阐述使用Maven的 基本方法。文末有例子代码下载的链接。 1 关键名词 Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
本书采用示例的方式介绍了Maven的相关核心概念 This book is an introduction to Apache Maven which uses a set of examples to demonstrate core concepts. Starting with a simple Maven project which contains...
Maven项目周期是一个抽象的概念,这个概念性的东西意味着它并不做任何实质性的事情,也就是说:它就像接口,只定义规范,具体细节它不管。具体的实现细节则交给了Maven的各个丰富的插件。Maven的插件机制有可能是跟...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
此外,课程还包括对Maven核心特性的深入讲解,如依赖管理、构建生命周期、插件使用等,以及如何通过自定义settings.xml文件来优化Maven项目的构建过程。我们的目标是让学员不仅能够安装和配置Maven,还能够灵活运用...
详细讲解了坐标和依赖、Maven仓库、生命周期和插件、聚合与继承等Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、...
使用Maven核心概念介绍(坐标、依赖、仓库、插件、生命周期等)、Maven与第三方Elicpse整合及如何在Eclipse中使用Maven、什么是私服、Maven为什么使用私服、Maven私服Nexus的安装使用、如何使用Maven构建Web应用、使用...