1 / 23

Maven 培训

Maven 培训. Maven 简介 Maven 的特点 Maven 安装与配置 Maven 的使用 Maven 常见问题 Maven 的插件安装及使用 Maven 在 Tiger 项目中的使用. Maven 简介. Maven 是基于项目对象模型 (POM) ,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Download Presentation

Maven 培训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maven培训 • Maven简介 • Maven的特点 • Maven安装与配置 • Maven的使用 • Maven常见问题 • Maven的插件安装及使用 • Maven在Tiger项目中的使用

  2. Maven简介 • Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 • 如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有有一个重复性更少却能同样完成该工作的方法。Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.

  3. Maven特点 • Maven 的编译及所有脚本都基于POM(project object model)。 • Maven 对所依赖的包有明确定义,如使用那个包,版本是多少,一目了然。(备注:使用到的包会在pom.xml中配置)如:freemarker-2.3.16.jar • Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。 • Maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode reference,等。

  4. Maven安装 • 1、下载maven • 版本:3.0.3下载地址:http://maven.apache.org/download.html • 2、安装maven • JDK:jdk1.6 • 2.1   解压缩apache-maven-3.0.3-bin.zip 到你想安装的位置,如D:/software/。 • 2.2 设置Maven系统环境变量,M2_HOME=D:/software/maven-3.0.3。 • 2.3 添加Maven bin目录至系统环境变量PATH中,%M2_HOME%\bin。 • 2.4 确认Maven的安装: • cmd > mvn -version • 提示Maven version 3.0.3即安装成功。

  5. Maven的配置(project配置) • Maven home directory在windows中是C:\Documents and Settings\username\.m2。 • maven的配置可以分为三个级别: • 3.1.project • 在pom.xml中配置。project configuration只针对当前project有效。 • 3.2 .installation • 在maven安装时配置。 • 3.3 .user • 对指定用户的配置。user configuration可以在${user.home}/.m2/settings.xml中指定。注:该文件不是必须的,当该文件找不到时,maven会使用默认的配置。 • 关于该文件的具体配置可以参考:http://maven.apache.org/ref/3.0.3/maven-settings/settings.html。

  6. pom.xml文件基本配置 •   Maven在my-app目录下创建了一个pom.xml文件。这是项目的最基本部分。pom.xml文件包含了一组指令,这些指令告诉Maven如何构 建项目和包含哪些其它的特殊指令(POM是“项目对象模型”的缩写)。在默认的情况下,Maven包含了JUnit的依赖以此来鼓励单元测试。 • xml 代码 • <project 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/maven-v4_0_0.xsd">         •   <modelVersion>4.0.0</modelVersion>         •   <groupId>com.myproject</groupId>         •   <artifactId>my-app</artifactId>         •   <packaging>jar</packaging>         •   <version>1.0-SNAPSHOT</version>         •   <name>Maven Quick Start Archetype</name>         •   <url>http://maven.apache.org</url>    • </project> 

  7. Pom.xml中部分参数值说明 • pom.xml 文件基本节点介绍 • <project > :文件的根节点 .<modelversion > : pom.xml 使用的对象模型版本 .<groupId > :创建项目的组织或团体的唯一 Id.<artifactId > :项目的唯一 Id, 可视为项目名 .<packaging > :打包物的扩展名,一般有 JAR,WAR,EAR 等 <version > :产品的版本号 .<name > :项目的显示名,常用于 Maven 生成的文档。 <url > :组织的站点,常用于 Maven 生成的文档。 <description > :项目的描述,常用于 Maven 生成的文档。 • 在 POM 4 中, <dependency> 中还引入了 <scope> ,它主要管理依赖的部署。 • 目前 <scope> 可以使用 5 个值: • compile :缺省值,适用于所有阶段,会随着项目一起发布。 • provided :类似 compile ,期望 JDK 、容器或使用者会提供这个依赖。如 servlet.jar 。 • runtime :只在运行时使用,如 JDBC 驱动,适用运行和测试阶段。 • test :只在测试时使用,用于编译和运行测试代码。不会随项目发布。 • system :类似 provided ,需要显式提供包含依赖的 jar , Maven 不会在 Repository 中查找它。

  8. Maven 的主要组件(http://www.ibm.com/developerworks/cn/java/j-maven/) • 项目对象模型 • 项目对象模型(Project Object Model,POM)描述项目的各个方面。尽管对于 POM 的物理表示没有内在的限制,但 Maven 开发人员通常使用一个 XML 项目文件(project.xml)。该 XML 文件格式由位于 Maven 安装目录中的 XML 模式(maven-project.xsd)定义。 • 通常,project.xml 文件由三个主要部分组成: • 项目管理部分包括项目的组织、开发人员名单、源代码位置和错误跟踪系统 URL 等信息。 • 项目相关性部分包括关于项目相关性的信息。 • 项目构建和报告部分包含项目构建信息(如源代码目录、单元测试用例目录)和要在构建中生成的报告。 • Maven主要组件:

  9. Maven的配置(本地Repository配置) • 本地Repository的默认值是${user.home}/.m2/repository/。可以在user configuration(即在${user.home}/.m2/setting.xml)中改变本地Repository。 • 配置如下:<settings></settings> • <localRepository>/path/to/local/repo</localRepository>注意:本地Repository 必须是绝对路径。

  10. Maven代理配置 • 3.5 配置代理 • 可以为http request配置代理。同样在user configuration中配置,配置如下: <settings></settings> <proxy><id>optional</id><active>true</active><protocol>http</protocol><username>proxyuser</username><password>proxypass</password><host>www.hc360.com</host><port>80</port><nonProxyHosts>local.net,some.host.com</nonProxyHosts></proxy>详见:http://maven.apache.org/guides/mini/guide-proxies.html

  11. Maven安全和部署配置 • 在一个project中,该项目将要使用哪个Repository,是在<distributionmanagement></distributionmanagement>setting.xml中指定的。然而,你却不能将用户名和 码以及其它的安全设定也放在该project中。因此,你可能会在你自己的设定中定义一个server,给它指定一个id, 该id与project将要使用那个Repository相对应。 另外,有些repository在下载时可能需要用户名和密码,这些也可以在server element中以相同的方式指定。配置如下<server><id>deploymentRepo</id><username>repouser</username><password>repopwd</password></server>

  12. Maven的使用 • Maven简单的管理功能如下: • 生成项目mvn archetype:create -DgroupId=com.myproject -DartifactId=my-app • 工程名称为my-app • my-app----src    ----main        ----java           ----com               ----myproject    ----test        ----java            ----com                ----myproject • mvn archetype:create -DgroupId=com.huawei.dbank.message -DartifactId=dbank_message -DpackageName=com.huawei.dbank  -DarchetypeArtifactId=maven-archetype-webapp

  13. Maven的常用命令(1) • Maven的运行命令为 : mvn , • 常用命令为 : • mvn archetype:create :创建 Maven 项目 • mvn compile :编译源代码 • mvn test-compile :编译测试代码 • mvn test : 运行应用程序中的单元测试 • mvn site : 生成项目相关信息的网站 • mvn clean :清除目标目录中的生成结果 • mvn package : 依据项目生成 jar 文件 • mvn install :在本地 Repository 中安装 jar •              mvn eclipse:eclipse :生成 Eclipse 项目文件 • 生成项目 •            建一个 JAVA 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=App • 建一个 web 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp • 生成 Eclipse 项目 • 普通 Eclipse 项目执行 : mvn eclipse:eclipse •            Eclipse WTP 项目执行 : mvn eclipse:eclipse –Dwtpversion=1.0 • ( wtp1.0 以上版本均可用)

  14. Maven常用命令(2) • mvn -Dtest package:组合使用goal命令,只打包不测试。 • mvn jar:jar只打jar包 • mvn test -skipping compile -skipping test-compile 只测试而不编译,也不测试编译 ( -skipping 的灵活运用,当然也可以用于其他组合命令)  • mvn eclipse:clean 清除eclipse的一些系统设置  • maven是有生命周期这一概念的,也就是说如果你执行package,相应的以前步骤,如compile,test等都会自动执行。 • 一般使用情况是这样,首先通过svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了; • 修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。

  15. Maven的结构 • 定义自己的结构 • 新建一个 archetype 项目 : • mvn archetype:create\ -DgroupId=cn.prof\ -DartifactId=prof-archetype\ -DarchetypeArtifactId=maven-archetype-archetype • 主要的模板文件 : archetype-resources/pom.xml • 修改其中内容 •        修改 META-INF/maven/archetype.xml 中定义了相关的 sources • 安装此项目 : mvn install • 执行下面的命令创建新目录的项目: • mvn archetype:create -DgroupId=com.mergere.mvnbook \ -DartifactId=proficio-example\ -DarchetypeGroupId=com.xxx.mvn\ -DarchetypeArtifactId= prof-archetype \ -DarchetypeVersion=1.0-SNAPSHOT

  16. Maven的目录说明(以maven2为例)

  17. Maven常遇问题总结 • 1、在使用命令mvn eclipse:eclipse 之后,import到Eclipse,然后在Eclipse项目上点右键,选择插件Maven>Enable Dependency Management后,会报重复引用依赖的错误解决办法 :先执行mvn eclipse:eclipse然后刷新Eclipse的项目,取消掉maven插件的引用依赖,错误就会消除。 • 2、maven下载包的时候内存溢出: • mvn install 报错 java.lang.OutOfMemoryError: Java heap space   • 解决办法: • a. 修改 %M2_HOME%\bin\mvn.bat文件,增加虚拟机内存设置 set MAVEN_OPTS= -Xms128m -Xmx512m • b. 可以在 mvn install 执行之前,先执行 set MAVEN_OPTS= -Xms128m -Xmx512m

  18. Maven常遇问题总结 • 3、执行mvn 时提示下面的内容: • 问题分析: • 在环境变量中配置了 • MAVEN_OPTS=-Xdebug-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n • 却没有Xdebug相关包。 • 解决办法: • 删除环境变量中属性为MAVEN_OPTS 的变量 • 或者直接将MAVEN_OPTS变量的值设为空,即不设置。

  19. Maven常遇问题总结 • 4、执行 mvn package 或 mvn install 命令报错: • assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) As the WEB-INF dire。 • 问题分析: • 错误提示的是web.xml文件缺少必要的属性。 • 解决办法: • 在google中搜索后发现原来是mvn工程的目录有问题,web.xml 文件需要放在main\webapp目录下,否则会找不到。将web.xml文件从WebContent\WEB-INF目录中 移到main\webapp\WEB-INF目录下即可。

  20. Maven常遇问题总结 • 当建立一个工程后,执行 mvn eclipse:eclipse ,建立一个maven的工程,用eclipse打开后,发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp ,这是因为在Eclipse 没有配置 M2_REPO 变量,配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables新建一个 M2_REPO 的变量,变量值指向你系统的Maven的数据仓库位置。 • 备注 :如果工程导入后,编译老是提示jar包找不到,则也是此问题导致,按照上面的描述添加配置即可。

  21. Maven插件安装 • 打开eclipse,找到Help->Install New SoftWare打开install窗口,选择add Site输入Maven插件地址:http://m2eclipse.sonatype.org/sites/m2e • Maven2完全使用手册http://agapple.javaeye.com/blog/147304 • Maven2的常用命令 • http://guooo.javaeye.com/blog/280604 • Maven2安装总结http://hi.baidu.com/vhion/blog/item/7544a245b045e02ccefca31c.html

  22. Maven在Tiger项目中的使用情况---在培训时会细讲以下内容Maven在Tiger项目中的使用情况---在培训时会细讲以下内容 • 1.搭建公司自己的nexus插件仓库 • 2.配置统一的${user.home}/.m2/setting.xml • 3.使用统一的tiger_parent/pom.xml管理版本 • 4.使用filter管理开发,测试,生产机配置信息 • 5.使用Profile管理个性化配置 • 6.使用mavan运行单元测试

  23. FAQ

More Related