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 的核心概念包括: 1. POM(Project Object Model):项目对象模型,将 Java 工程的相关信息封装为对象作为便于操作和管理。 2. 仓库(Repository):Maven 的仓库分为本地仓库、远程仓库和中央仓库。本地...
使用场景及目标:适用于需要理解和掌握 Maven 的核心概念及其高级特性的开发团队成员,帮助他们在实际项目中有效地使用 Maven 进行构建和依赖管理。 阅读建议:建议读者结合实际项目案例进行实践操作,逐步掌握 ...
Maven的核心概念中,依赖管理是非常重要的一个部分。依赖管理主要处理项目依赖关系的复杂性,包括依赖传递性、依赖范围、依赖冲突解决方案和依赖排除等方面。依赖传递性指如果A依赖B,而C又依赖A,则C也会间接依赖B...
** Maven 的核心概念 ** 1. **项目对象模型 (POM)**: POM 是 Maven 的核心,它是一个 XML 文件,包含了项目的配置信息,如项目信息、依赖、构建目标、插件配置等。 2. **依赖管理**: Maven 自动管理项目所依赖的库...
2. **项目对象模型(POM)**:POM是Maven的核心概念,是一个XML文件,用于描述项目配置信息,如项目名称、版本号、依赖关系等。 3. **生命周期**:Maven定义了一系列构建阶段,每个阶段对应一组特定的任务,这些任务...
** Maven3 的核心概念 ** 1. **项目对象模型 (POM)**:POM是Maven的核心,它是一个XML文件,包含了项目的基本信息,如项目坐标(groupId, artifactId, version),依赖关系,构建配置等。 2. **依赖管理**:Maven...
1. **POM(项目对象模型)**:Maven的核心概念,它是项目配置信息的XML文件,包含了项目的元数据、依赖、构建目标等信息。开发者可以通过修改POM文件来定制构建过程。 2. **依赖管理**:Maven自动处理项目的依赖...
1. Maven核心概念:包括POM(Project Object Model)、坐标系统(Group ID, Artifact ID, Version)、仓库(本地仓库和远程仓库)以及生命周期(Clean, Validate, Compile, Test, Package, Verify, Install, Deploy...
- **项目对象模型(Project Object Model, POM)**:POM是Maven的核心概念之一,它是一个XML文件,用于描述项目结构和配置。 - **坐标(Coordinates)**:Maven使用一组坐标来唯一标识一个项目或其构件,主要包括...
9. **POM.xml**:Project Object Model (POM) 是Maven的核心概念,它是项目的配置文件,包含了项目信息、依赖管理、构建指令等内容。 10. **Maven构建命令**:常用Maven命令如`mvn clean`(清理构建目标)、`mvn ...
Maven的核心概念包括项目对象模型(POM),依赖管理,构建生命周期和插件。POM是一个XML文件,其中包含了项目构建的所有信息,如项目名称、版本、构建设置、依赖项等。依赖管理机制允许开发者在POM中声明依赖库,Maven...
**Maven核心概念** 1. **项目对象模型(Project Object Model, POM)** Maven 的核心是POM,它是一个XML文件,包含了项目的基本信息,如项目名称、版本、依赖、构建目标等。POM使得Maven能够理解项目结构,并自动...
** Maven核心程序jar包详解 ** Maven是Java开发中的一个关键工具,它是一个项目管理和综合工具,由Apache Software Foundation维护。Maven的核心程序jar包是实现自动化构建、依赖管理和项目信息管理的基础。在给定...
### Maven的核心概念 1. **项目对象模型(Project Object Model,POM)** Maven的中心是POM,它是XML格式的文件,包含了项目的基本信息、依赖、构建指令等。通过POM,Maven可以理解项目的结构并自动完成构建过程。...
**Maven 的核心概念** 1. **项目对象模型 (Project Object Model, POM)**: POM是Maven的核心,它是XML格式的文件,包含了项目的基本信息,如项目名称、版本、依赖、构建目标等。 2. **坐标**: Maven使用一组唯一的...
《Maven3实战笔记(全)》是一本全面深入介绍Maven3的实践指南,由一位具有独特风格的作者撰写,以其风趣幽默的方式解析了Maven3的各种核心概念和使用技巧。这本书涵盖了从Maven的基础安装与配置,到复杂的仓库依赖...
通过本文的介绍,我们可以了解到Maven的基本概念、安装配置、基本使用和深入应用详解。 Maven的基本概念包括POM(Project Object Model,项目对象模型)、标准集合(archetype)、项目生命周期和依赖管理系统。POM...
《一头扎进Maven3》第三讲主要涵盖了Maven的核心概念、配置以及使用方法,是初学者理解Maven的关键步骤。Maven是一个强大的项目管理和构建工具,广泛应用于Java开发领域,它通过统一的构建过程和依赖管理,简化了...
Maven3是Java开发中广泛使用的构建工具,它...理解并熟练掌握以上Maven3配置文件的关键概念,对于提升Java开发的效率和项目管理能力至关重要。正确配置和使用这些文件,可以帮助开发者构建出符合标准、易于维护的项目。
**版本说明**:在提供的描述中,“Apache Maven 3”被重复提及多次,这可能是为了强调本书(Apache Maven 3 Cookbook)所关注的核心内容是 Apache Maven 3 版本。Apache Maven 3 相比之前的版本进行了大量的改进和...