Maven-介绍

来源:互联网 发布:洞主手工皂淘宝在哪 编辑:程序博客网 时间:2024/06/14 20:42

1 简介

Maven是一个跨平台的项目管理工具,属于Apache组织下的一个开源项目,主要服务于Java平台的项目构建、依赖管理和项目信息管理。

Maven能帮助我们标准化构建过程,所有项目使用构建命令都是简单一致的,极大地降低了学习成本,有利于促进项目管对的标准化,它不仅能自动化构建,还能抽象构建过程,提供丰富的插件,它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀、流行的构建工具。

Maven文档链接:http://download.csdn.net/detail/weisheixiaoxin/9901732

1.1 安装和配置

链接:http://blog.csdn.net/weisheixiaoxin/article/details/75078748

1.2 创建与使用

链接:http://blog.csdn.net/weisheixiaoxin/article/details/76166534

Maven中的POM.xml就和Ant的.xml一样,是整个项目的核心,POM(Project Object Model)定义了项目的基本信息,用于描述项目如何构建、声明项目依赖等等。
这里写图片描述

Maven使用Group Id,Artifact Id,Version三元素定义项目基本坐标,packaging中的jar(默认),pom,war都是以这些基本坐标进行区分,执行打包命令也是jar包或者war包。

modelVersion 指定当前POM模型版本,Maven 2/3 只能是4.0.0
GroupId 定义项目属于哪个组。
ArtifactId 定义当前项目在组中的唯一ID。
Version 当前项目的版本号有snapshot(快照版/不稳定) release(发布版/稳定)。
name 声明项目的名称,不是必须的。

2 仓库

Maven 世界中,任何一个依赖、插件或者项目结构的输出,都可以称为构件,任何一个构件都有一组坐标唯一标识。

2.1 仓库分类

对于Maven 仓库只分为两类:本地仓库和远程仓库。
Maven根据坐标寻找构件时候,会先查找本地仓库,如果存在则使用,不存在就会去远程仓库查找,找到构件后就会下载到本地仓库使用,如果都没有就会报错。
这里写图片描述

2.1.1 本地仓库

默认:${user.home}/.m2/repository

自定义:打开${maven}/conf/settings.xml文件
这里写图片描述

一个构件只有在本地仓库中才能被其他Maven项目使用

使用cmd进入到maven项目路径,执行命令:mvn clean install (清理并安装)

使用Eclipse:右击项目->Run As->Maven install

可以看到本地仓库创建了个jar包
这里写图片描述

2.1.2 私服

私服是种特殊的远程仓库,一般架设在局域网内的仓库服务,当Maven 需要下载构件时候,会从私服上请求,如果不存在私服上则会去中央仓库下载并且缓存在私服中。

如今比较流行的Maven 私服软件—Nexus

私服优势
节省外网宽带、加速Maven 构件、 部署第三方构件、 提高稳定性,增强控制、 降低中央仓库的负荷

2.1.3 中央仓库

Maven 为全世界的Java 开发者提供了一个免费的中央仓库(http://repo.maven.apache.org/maven2),在其中几乎可以找到任何流行的开源类库。

打开:${maven}/lib/maven-model-builder-x.x.x.jar/org/apache/maven/model/pom-4.0.0.xml
可以看到这个POM是Maven的顶级文件类似于Java 中的Object类,其他的pom默认继承于它。
这里写图片描述

3 坐标

Maven中的坐标元素:groupId、artifactId、version、packaging、classifier。

groupId(必须):当前Maven项目隶属的实际项目
artifactId(必须):定义项目中的模块
version(必须):当前所处的版本
packaging(可选,默认jar):项目的打包方式
classifier(不能直接定义):输出的附属构件

4 小结

本文简单概述了Maven,通过该文章可以大致了解Maven是什么,以及它有什么用途。

同样也介绍了Maven的坐标,各个元素的定义和含义,并且阐述了仓库这一个Maven核心概念,介绍仓库的布局,如何与实际文件进行联系,介绍了远程仓库本地仓库和私服的概念。

原创粉丝点击