Maven简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
modelVersion 描述这个POM文件遵从哪个版本的项目描述符。 groupId 针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与 其他项目的类似名字来进行区分(比如:org.apache.maven) artifactId 在给定groupId 的group里面为artifact指定的标识符,是唯一的。 artifact代表的是被制作或者被一个project应用的组件。对于Maven项目的 artifact 的例子包括:一些JARs,源代码以及二进制的发布以及WARs. packaging 这个项目生产出来的artifact 类型,举个例子jar, war, pom, swf,
生命周期和阶段
每套生命周期都由一组阶段(Phase)组成 ,我们平时在命令行输入的命令总会对应 于一个特定的阶段。 比如,运行mvn clean ,这个的clean是 Clean生命周期的一个阶段,所以,mvn clean install和mvn install 是有区别的
Clean Lifecycle Clean生命周期一共包含了三个阶段:
<releases>
<enabled>true</enabled> </releases>
<snapshots>
<enabled>true</enabled> </snapshots>
</repository>
</repositories> </profile>
Maven是什么? Apache Maven Project
Maven是Java项目的构建和管理工具 Maven是一套项目管理框架,提供了标准的软件 生命周期模型,涵盖项目的创建、构建、测试、 集成和部署 Maven是一套标准,基于一个通用的软件对象模 型(Project Object Model)Maven提供一系列 工具(插件Plug-in),方便描述和管理项目
plugins能够创建他们自己的包,包括包的类型,所以这个列表不可能包含所有可 能的类型
name 当前项目的全称 version 当前项目产生的artifact的当前版本
Maven的配置文件- POM
description 当前项目的一个细节描述,当需要描述这个项目的时候被Maven所 用,比如在web 站点中。 这个元素能够被指定为CDATA类型,允许使用HTML的 tags,并不鼓励用空白文本来表示。 url 当前项目的主页的URL prerequisites 描述当前项目的编译环境的先决条件 issueManagement 当前项目的发布管理信息。 ciManagement 当前项目的连续集成信息。 inceptionYear 当前项目开始的年份, 用4位数字描述。 涉及到介绍情况时用作 提供版权信息
一些基本概念
POM 项目描述文件,Maven管理项目的依据 Lifecycle Maven的核心,生命周期模型,稍后详述 Goal mvn的命令行参数的一种,告诉maven要用插件完成什么任务 mvn archetype:generate Plug-in Maven的大部分功能都是通过插件完成的 Maven仓库 集中存储和管理Artifact(jar) GAV GroupId,ArtifactId和Version 一个Artifact的唯一标示
Nexus: Maven仓库管理器
Maven通过中央仓库(central)来管理构 件,全世界只有一个中央仓库,它有很多 镜像(mirro) Nexus以web-app的形式提供本地化的 Maven仓库管理服务。 配置本地Maven使用Nexus仓库,以提高效 率
Nexus: Maven仓库管理器
Maven的配置文件-Settings.xml
settings.xml的基本结构如下 <settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/>
<pluginGroups/>
<servers/>
<mirrors/>
Maven能带来什么好处? 用Maven可以方便的创建项目,基于archetype 可以创建多种类型的java项目
Maven仓库对jar包(artifact)进行统一管理, 避免jar文件的重复拷贝和版本冲突 团队开发,Maven管理项目的RELEASE和 SNAPSHOT版本,方便多模块(Module)项目 的各个模块之间的快速集成
mailingLists 包含的信息包括邮件列表
developers 描述当前的项目的开发人员的信息
contributors 描述对当前项目有贡献的人员的信息,不特指开发人员
Maven的坐标(Coordinates)
命令行方式使用Maven
本地Maven环境搭建成功后,就可以通过命令行方式使用 Maven了,下面演示通过命令行创建项目,并导入 Eclipse. mvn archetype:create -DgroupId=com.cops DartifactId=myDemo -Dversion=0.1-SNAPSHOT
http://nexus.sonatype.org/download-nexus.html
在tomcat中发布 访问http://localhost:8080/nexus-webapp-1.5.0/即可 查询Maven 构件 以默认管理账户admin/admin123登录后可 进行仓库管理 参见http://juvenshun.javaeye.com/blog/349534
cd myDemo mvn eclipse:eclipse –DdownloadSource=true 在eclipse中导入Maven Project就可以了
Maven常用命令
编译 mvn compile 打包 mvn package 测试 mvn test 部署(本地) mvn install 部署(远程) mvn deploy 生成site mvn site 清除 mvn clean
Baidu Nhomakorabea地使用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>
pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作
Default Lifecycle
绝大部分工作都发生在这个生命周期中
validate
generate-sources
process-sources
Default Lifecycle
Site Lifecycle
Site生命周期包含以下阶段
pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作 ,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上
<proxies/> <profiles/> <activeProfiles/> </settings>
详细说明可参见 http://www.javaeye.com/topic/41612
Maven的配置文件- POM
Maven的配置文件- POM
项目中的pom.xml用来描述项目
parent 如果存在上一级父项目的话,给出父项目的位置。如果没有特别指出的话 ,值就是父项目,对于当前项目而言。其内容是一个groupId,artifactId和 version元素的组合。
MyEclipse中启用Maven
设置Maven
添加用户Settings.xml
创建Maven项目
指定Source和 Web root folder 并且添加将Add Maven Support 选中
创建Maven项目
输入GAV和其他信息 这些信息会被写入POM
多模块项目
Maven的目录结构
Maven的生命周期模型
Maven基于生命周期模型对项目进行管理,Maven有三 套相互独立的生命周期,请注意这里说的是“三套”,而 且“相互独立”,是指Maven的生命周期并不是一个整 体,而是独立的三套。这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作; Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等; Site Lifecycle 生成项目报告,站点,发布站点。
Maven能够自动生成项目站点,方便项目沟通
Maven的安装
Maven的安装很简单,下载解压之后只需 设置环境变量,就算安装成功了。
下载地址http://maven.apache.org/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的策略
Maven central
Maven client
Maven client
Maven client
Maven client
Maven central
Maven client
Maven client
Nexus
Maven client
Maven client
Nexus 安装和配置
下载Nexus 1.5.0 war
Maven的安装
Maven的配置文件-Settings.xml
Settings.xml
%M2_HOME%\conf\settings.xml称为Global Settings(即全局配置) %USERHOME%\.m2\settings.xml(手动创建)称 为User Settings ,User Settings继承Global Settings,并不是必须的。
generate-resources
process-resources
compile
复制并处理资源文件,至目标目录,准备打包。
编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
生命周期和阶段
每套生命周期都由一组阶段(Phase)组成 ,我们平时在命令行输入的命令总会对应 于一个特定的阶段。 比如,运行mvn clean ,这个的clean是 Clean生命周期的一个阶段,所以,mvn clean install和mvn install 是有区别的
Clean Lifecycle Clean生命周期一共包含了三个阶段:
<releases>
<enabled>true</enabled> </releases>
<snapshots>
<enabled>true</enabled> </snapshots>
</repository>
</repositories> </profile>
Maven是什么? Apache Maven Project
Maven是Java项目的构建和管理工具 Maven是一套项目管理框架,提供了标准的软件 生命周期模型,涵盖项目的创建、构建、测试、 集成和部署 Maven是一套标准,基于一个通用的软件对象模 型(Project Object Model)Maven提供一系列 工具(插件Plug-in),方便描述和管理项目
plugins能够创建他们自己的包,包括包的类型,所以这个列表不可能包含所有可 能的类型
name 当前项目的全称 version 当前项目产生的artifact的当前版本
Maven的配置文件- POM
description 当前项目的一个细节描述,当需要描述这个项目的时候被Maven所 用,比如在web 站点中。 这个元素能够被指定为CDATA类型,允许使用HTML的 tags,并不鼓励用空白文本来表示。 url 当前项目的主页的URL prerequisites 描述当前项目的编译环境的先决条件 issueManagement 当前项目的发布管理信息。 ciManagement 当前项目的连续集成信息。 inceptionYear 当前项目开始的年份, 用4位数字描述。 涉及到介绍情况时用作 提供版权信息
一些基本概念
POM 项目描述文件,Maven管理项目的依据 Lifecycle Maven的核心,生命周期模型,稍后详述 Goal mvn的命令行参数的一种,告诉maven要用插件完成什么任务 mvn archetype:generate Plug-in Maven的大部分功能都是通过插件完成的 Maven仓库 集中存储和管理Artifact(jar) GAV GroupId,ArtifactId和Version 一个Artifact的唯一标示
Nexus: Maven仓库管理器
Maven通过中央仓库(central)来管理构 件,全世界只有一个中央仓库,它有很多 镜像(mirro) Nexus以web-app的形式提供本地化的 Maven仓库管理服务。 配置本地Maven使用Nexus仓库,以提高效 率
Nexus: Maven仓库管理器
Maven的配置文件-Settings.xml
settings.xml的基本结构如下 <settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/>
<pluginGroups/>
<servers/>
<mirrors/>
Maven能带来什么好处? 用Maven可以方便的创建项目,基于archetype 可以创建多种类型的java项目
Maven仓库对jar包(artifact)进行统一管理, 避免jar文件的重复拷贝和版本冲突 团队开发,Maven管理项目的RELEASE和 SNAPSHOT版本,方便多模块(Module)项目 的各个模块之间的快速集成
mailingLists 包含的信息包括邮件列表
developers 描述当前的项目的开发人员的信息
contributors 描述对当前项目有贡献的人员的信息,不特指开发人员
Maven的坐标(Coordinates)
命令行方式使用Maven
本地Maven环境搭建成功后,就可以通过命令行方式使用 Maven了,下面演示通过命令行创建项目,并导入 Eclipse. mvn archetype:create -DgroupId=com.cops DartifactId=myDemo -Dversion=0.1-SNAPSHOT
http://nexus.sonatype.org/download-nexus.html
在tomcat中发布 访问http://localhost:8080/nexus-webapp-1.5.0/即可 查询Maven 构件 以默认管理账户admin/admin123登录后可 进行仓库管理 参见http://juvenshun.javaeye.com/blog/349534
cd myDemo mvn eclipse:eclipse –DdownloadSource=true 在eclipse中导入Maven Project就可以了
Maven常用命令
编译 mvn compile 打包 mvn package 测试 mvn test 部署(本地) mvn install 部署(远程) mvn deploy 生成site mvn site 清除 mvn clean
Baidu Nhomakorabea地使用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>
pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作
Default Lifecycle
绝大部分工作都发生在这个生命周期中
validate
generate-sources
process-sources
Default Lifecycle
Site Lifecycle
Site生命周期包含以下阶段
pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作 ,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上
<proxies/> <profiles/> <activeProfiles/> </settings>
详细说明可参见 http://www.javaeye.com/topic/41612
Maven的配置文件- POM
Maven的配置文件- POM
项目中的pom.xml用来描述项目
parent 如果存在上一级父项目的话,给出父项目的位置。如果没有特别指出的话 ,值就是父项目,对于当前项目而言。其内容是一个groupId,artifactId和 version元素的组合。
MyEclipse中启用Maven
设置Maven
添加用户Settings.xml
创建Maven项目
指定Source和 Web root folder 并且添加将Add Maven Support 选中
创建Maven项目
输入GAV和其他信息 这些信息会被写入POM
多模块项目
Maven的目录结构
Maven的生命周期模型
Maven基于生命周期模型对项目进行管理,Maven有三 套相互独立的生命周期,请注意这里说的是“三套”,而 且“相互独立”,是指Maven的生命周期并不是一个整 体,而是独立的三套。这三套生命周期分别是:
Clean Lifecycle 在进行真正的构建之前进行一些清理工作; Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等; Site Lifecycle 生成项目报告,站点,发布站点。
Maven能够自动生成项目站点,方便项目沟通
Maven的安装
Maven的安装很简单,下载解压之后只需 设置环境变量,就算安装成功了。
下载地址http://maven.apache.org/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的策略
Maven central
Maven client
Maven client
Maven client
Maven client
Maven central
Maven client
Maven client
Nexus
Maven client
Maven client
Nexus 安装和配置
下载Nexus 1.5.0 war
Maven的安装
Maven的配置文件-Settings.xml
Settings.xml
%M2_HOME%\conf\settings.xml称为Global Settings(即全局配置) %USERHOME%\.m2\settings.xml(手动创建)称 为User Settings ,User Settings继承Global Settings,并不是必须的。
generate-resources
process-resources
compile
复制并处理资源文件,至目标目录,准备打包。
编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources