`

maven 入门名词认识

阅读更多

学习maven当然要明白关于maven的一名词了,这是我们查看学习maven时经常看到的,现整理一下我看到的资料。

Project:

           任务想build的事物,maven都可以认为他们是工程。这些工程被定义为工程对象模型POM(Poject Object Model),一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成.

POM:

           POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中.

GroupId:

           groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。

Artifact:

            artifact 是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中,否则Maven无法找到 (识别)它们.

Dependency:

            为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency.dependency一般是其它工程的artifact. Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件.

Repository:

           仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。Maven有一个默认的远程仓库——central,可以从http://www.ibiblio.org/maven/下载其中的artifact.在Windows平台上,本地仓库的默认地址是User_Home\.m2\repository. Snapshot:工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。

Maven Build Life Cycle:

           软件项目一般都有相似的开发过程:准备,编译,测试,打包和部署,Maven将上述过程称为Build Life Cycle.在Maven中,这些生命周期由一系列的短语组成,每个短语对应着一个(或多个)操作;或对应着一个(或多个)goal(类似于Ant中的 target)。

 

另外记录一下学见maven命令:

在命令行下输入mvn -h , 显示mvn帮助,其中usage: mvn [options] [<goal(s)>] [<phase(s)>]表明了mvn命令的构成。

Options:可选的参数。比如前面提到的-version , -h等。

Goal(s): 表示maven构建的“目标”。比如前面的

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app

其中archetype:create表示archetype插件下的create目标。这里,插件是为了某种目的构建的目标的集合,maven通过插件扩展其功能。

还可以为目标传递一些参数,比如上面的“-DgroupId=com.mycompany.app -DartifactId=my-app”。

Phase(s):阶段。表示maven构建生命周期 中的一个步骤。使用相位命令时,maven会执行生命周期中该阶段之前的所有命令,使项目处于指定的“状态”。

比如在刚才创建的项目路径下输入mvn compile,会创建target文件夹,并编译class,使项目处于“已编译”状态。

  • maven定义的生命周期中主要的相位如下:
  • validate: 验证项目是否正确以及相关信息是否可用。
  • compile: 编译。
  • test: 通过junit进行单元测试。
  • package: 根据事先指定的格式(比如jar),进行打包。
  • integration-test: 部署到运行环境中,准备进行集成测试。
  • verify: 对包进行有效性性和质量检查。
  • install: 安装到本地代码库。
  • deploy: 在集成或发布环境,将包发布到远程代码库。

在“默认”的生命周期之外,还有两个“阶段”:

  • clean: 清除以前的构建物。
  • site: 生成项目文档。

组合命令

可以通过对目标及相位的组合使得一个命令完成多个功能,比如:

mvn clean dependency:copy-dependencies package

相当于按顺序执行

mvn clean

mvn dependency:copy-dependencies

mvn package

分享到:
评论

相关推荐

    maven入门到精通

    maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml能够完成编译、测试、打包、部署等很多任务,但我们也碰到了很多的问题,如 jar文件管理混乱,各个...

    Maven入门到精通

    **Maven入门到精通** Maven,一个强大的Java项目管理工具,由Apache软件基金会开发,旨在简化构建过程,提供统一的构建系统,并通过依赖管理和项目信息管理,帮助开发者更高效地构建、测试和部署Java应用。它通过...

    Apache Maven入门篇(上)

    在“Apache Maven入门篇(上)”中,我们将探讨Maven的基本概念、安装步骤以及如何创建和管理一个简单的Java项目。 1. Maven的核心概念: - **POM(Project Object Model)**:POM是Maven项目的核心,是一个XML文件...

    Maven 入门到进阶.pdf

    Maven是一个广泛使用的项目管理和构建自动化工具,其主要特点包括项目对象模型(POM)的管理、构建、报告和文档的生成。Maven的使用不仅限于构建Java项目,它还可以用于构建和管理各种类型的项目,例如C#、Ruby等其他...

    Maven入门案例

    本篇文章将深入探讨Maven的入门知识,包括Maven的安装、配置、基本命令以及通过案例来理解Maven的工作原理。 首先,让我们从**Maven的安装**开始。在Windows系统中,你可以访问Maven官方网站下载最新版本的Maven,...

    maven入门.docx

    ### Maven 入门详解 #### 一、Maven 概述与重要性 Maven 是一个流行的项目管理和整合工具,广泛应用于 Java 开发领域。它为开发者提供了完整的构建生命周期框架,帮助开发者简化项目的构建过程,使得项目的管理和...

    maven教案-maven入门学习资料

    【 Maven 概述】 在软件开发中,尤其是在Java领域,我们常常面临一系列问题,如环境配置差异、依赖管理混乱以及项目构建的繁琐等。这些问题在 Maven 出现后得到了很好的解决。Maven 是一个强大的项目管理工具,由 ...

    Maven+SpringMVC的入门级HelloWorld实例

    在IT行业中,Maven和SpringMVC是两个非常重要的组件,它们分别是项目管理和Web应用程序开发的核心...通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本用法,为进一步深入学习和实践打下坚实的基础。

    maven + springmvc 入门实例

    **SpringMVC与Maven入门实例详解** 在Java Web开发中,SpringMVC和Maven是两个非常重要的工具。SpringMVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)架构,用于构建可维护、高性能的Web应用程序。而...

    Maven入门指导文档

    Maven入门指导文档,详细记录了maven的每一步使用步骤

    maven 入门demo

    ** Maven 入门指南 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过标准化项目构建过程,使得开发人员可以更轻松地管理依赖、构建、测试和部署项目。本教程将引导初学者了解 Maven 的...

    Maven入门指南.docx

    【Maven入门指南】 Maven是一个广泛应用于Java项目的强大构建工具,它自动化处理软件构建的多个环节,包括源码编译、文档生成、JAR包创建、依赖管理和部署。Maven的核心理念是通过项目对象模型(Project Object ...

    apache maven入门教程

    Apache Maven 是一个强大的项目管理工具,特别是在Java开发领域中,它替代了早期的ANT工具,提供了更为全面和便捷的项目构建和管理功能。Maven基于项目对象模型(Project Object Model,POM),能够自动化构建过程,...

    Maven入门文档.doc

    【Maven是什么】 Maven是一个基于Java的构建工具,它旨在简化软件开发流程,特别是Java应用的构建。与Ant类似,Maven可以帮助开发者完成编译、测试、打包、发布等一系列重复性工作。Maven的核心目标是通过自动化...

    超详细Maven快速入门到精通.txt打包整理.zip

    标题"超详细Maven快速入门到精通.txt打包整理.zip"表明这是一个关于Maven的全面教程,涵盖了从基础到高级的各个方面,旨在帮助用户快速掌握Maven的使用。Maven是一个Java项目管理和综合工具,由Apache软件基金会开发...

    Maven入门培训

    Maven入门培训,基础讲解,ppt Maven入门培训,基础讲解,ppt

    Maven入门--较复杂的实例

    【标题】"Maven入门--较复杂的实例"指的是在IT领域中学习并实践Apache Maven的基础知识,特别是通过一个相对复杂的项目来理解其工作原理和应用。Maven是一个强大的项目管理和综合工具,它可以帮助Java开发者自动化...

    Maven3入门

    Maven3入门

    Maven入门学习.pdf

    Maven是一个跨平台的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。它的设计理念是为了简化和标准化项目构建过程,使之变得更加自动化和方便。Maven不仅仅是一个构建工具,它的功能还包括依赖管理...

Global site tag (gtag.js) - Google Analytics