当前位置:文档之家› Maven简介

Maven简介


Maven能带来什么好处? 用Maven可以方便的创建项目,基于archetype 可以创建多种类型的java项目
Maven仓库对jar包(artifact)进行统一管理, 避免jar文件的重复拷贝和版本冲突 团队开发,Maven管理项目的RELEASE和 SNAPSHOT版本,方便多模块(Module)项目 的各个模块之间的快速集成
Maven central
Maven client
Maven client
Maven client
Maven client
Maven central
Maven client
Maven cliclient
Maven client
Nexus 安装和配置
下载Nexus 1.5.0 war
一些基本概念
POM 项目描述文件,Maven管理项目的依据 Lifecycle Maven的核心,生命周期模型,稍后详述 Goal mvn的命令行参数的一种,告诉maven要用插件完成什么任务 mvn archetype:generate Plug-in Maven的大部分功能都是通过插件完成的 Maven仓库 集中存储和管理Artifact(jar) GAV GroupId,ArtifactId和Version 一个Artifact的唯一标示
Default Lifecycle
Site Lifecycle
Site生命周期包含以下阶段
pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作 ,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上
Maven是什么? Apache Maven Project
Maven是Java项目的构建和管理工具 Maven是一套项目管理框架,提供了标准的软件 生命周期模型,涵盖项目的创建、构建、测试、 集成和部署 Maven是一套标准,基于一个通用的软件对象模 型(Project Object Model)Maven提供一系列 工具(插件Plug-in),方便描述和管理项目
modelVersion 描述这个POM文件遵从哪个版本的项目描述符。 groupId 针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与 其他项目的类似名字来进行区分(比如:org.apache.maven) artifactId 在给定groupId 的group里面为artifact指定的标识符,是唯一的。 artifact代表的是被制作或者被一个project应用的组件。对于Maven项目的 artifact 的例子包括:一些JARs,源代码以及二进制的发布以及WARs. packaging 这个项目生产出来的artifact 类型,举个例子jar, war, pom, swf,
Nexus: Maven仓库管理器
Maven通过中央仓库(central)来管理构 件,全世界只有一个中央仓库,它有很多 镜像(mirro) Nexus以web-app的形式提供本地化的 Maven仓库管理服务。 配置本地Maven使用Nexus仓库,以提高效 率
Nexus: Maven仓库管理器
本地使用Maven
向Maven Global Settings添加如下代码
<profiles> <profile> <id>dev</id> <repositories> <repository> <id>local-nexus</id> <url>http://127.0.0.1:8080/nexus-webapp-1.5.0/content/groups/public/</url>
Maven的安装
Maven的配置文件-Settings.xml
Settings.xml
%M2_HOME%\conf\settings.xml称为Global Settings(即全局配置) %USERHOME%\.m2\settings.xml(手动创建)称 为User Settings ,User Settings继承Global Settings,并不是必须的。
/download-nexus.html
在tomcat中发布 访问http://localhost:8080/nexus-webapp-1.5.0/即可 查询Maven 构件 以默认管理账户admin/admin123登录后可 进行仓库管理 参见/blog/349534
MyEclipse中启用Maven
设置Maven
添加用户Settings.xml
创建Maven项目
指定Source和 Web root folder 并且添加将Add Maven Support 选中
创建Maven项目
输入GAV和其他信息 这些信息会被写入POM
多模块项目
Maven的目录结构
pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作
Default Lifecycle
绝大部分工作都发生在这个生命周期中
validate
generate-sources
process-sources
Maven的配置文件-Settings.xml
settings.xml的基本结构如下 <settings xmlns="/POM/4.0.0"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0
生命周期和阶段
每套生命周期都由一组阶段(Phase)组成 ,我们平时在命令行输入的命令总会对应 于一个特定的阶段。 比如,运行mvn clean ,这个的clean是 Clean生命周期的一个阶段,所以,mvn clean install和mvn install 是有区别的
Clean Lifecycle Clean生命周期一共包含了三个阶段:
Maven能够自动生成项目站点,方便项目沟通
Maven的安装
Maven的安装很简单,下载解压之后只需 设置环境变量,就算安装成功了。
下载地址/download.html 如果我们把maven解压到d:\maven-2.2.1,那么添加环境变量 M2_HOME=d:\maven-2.2.1,并向Path中添加%M2_HOME%\bin 打开cmd 运行mvn –version可以查看版本号 从%M2_HOME%\conf中复制settings.xml到user目录下建立自己 的配置文件,winXP系统下为”c:\documents and settings\all users\[username]\.m2”win7为”c:\users\[username]\.m2” MyEclipse 8.5集成了Maven环境,推荐将解压安装的Maven配置 到MyEclipse 8.5中并启用
基于Maven的项目管理
中联润通 2010.07
大纲
Maven是什么? 在项目中使用Maven能带来什么好处? Maven的安装和使用 安装 配置文件 命令行方式介绍 Eclipse plug-in Nexus——Maven仓库管理器 在项目中使用Maven的策略
<releases>
<enabled>true</enabled> </releases>
<snapshots>
<enabled>true</enabled> </snapshots>
</repository>
</repositories> </profile>
plugins能够创建他们自己的包,包括包的类型,所以这个列表不可能包含所有可 能的类型
name 当前项目的全称 version 当前项目产生的artifact的当前版本
Maven的配置文件- POM
description 当前项目的一个细节描述,当需要描述这个项目的时候被Maven所 用,比如在web 站点中。 这个元素能够被指定为CDATA类型,允许使用HTML的 tags,并不鼓励用空白文本来表示。 url 当前项目的主页的URL prerequisites 描述当前项目的编译环境的先决条件 issueManagement 当前项目的发布管理信息。 ciManagement 当前项目的连续集成信息。 inceptionYear 当前项目开始的年份, 用4位数字描述。 涉及到介绍情况时用作 提供版权信息
<proxies/> <profiles/> <activeProfiles/> </settings>
详细说明可参见 /topic/41612
Maven的配置文件- POM
Maven的配置文件- POM
项目中的pom.xml用来描述项目
parent 如果存在上一级父项目的话,给出父项目的位置。如果没有特别指出的话 ,值就是父项目,对于当前项目而言。其内容是一个groupId,artifactId和 version元素的组合。
mailingLists 包含的信息包括邮件列表
developers 描述当前的项目的开发人员的信息
contributors 描述对当前项目有贡献的人员的信息,不特指开发人员
Maven的坐标(Coordinates)
命令行方式使用Maven
相关主题