Maven学习基础.ppt

上传人:苏美尔 文档编号:5685291 上传时间:2020-07-22 格式:PPT 页数:24 大小:191KB
返回 下载 相关 举报
Maven学习基础.ppt_第1页
第1页 / 共24页
Maven学习基础.ppt_第2页
第2页 / 共24页
Maven学习基础.ppt_第3页
第3页 / 共24页
Maven学习基础.ppt_第4页
第4页 / 共24页
Maven学习基础.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Maven学习基础.ppt》由会员分享,可在线阅读,更多相关《Maven学习基础.ppt(24页珍藏版)》请在三一文库上搜索。

1、Maven使用基础,一、Maven的基本概念 Maven(翻译为专家,内行)是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 1.1、项目构建 项目构建过程包括【清理项目】【编译项目】【测试项目】【生成测试报告】【打包项目】【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。,二、Maven安装 1、首先要确保电脑上已经安装了JDK(要jdk 1.6+的版本),配置好JDK的环境变量,使用如下的两个命令检查检查JDK安装的情况。 2、对apache-maven-3.2.3-bin.zip进行解压缩 3、设置系统环境变量:MAVEN_HOME 4、

2、设置环境变量Path,将%MAVEN_HOME%bin加入Path中,一定要注意要用分号;与其他值隔开。 %MAVEN_HOME%bin代表的就是E:apache-maven-3.2.3bin目录 5、验证Maven安装是否成功。输入mvnv命令查看Maven的相关信息,1、Maven项目的目录约定 MavenProjectRoot(项目根目录) |-src | |-main | | |-java 存放项目的.java文件 | | |-resources 存放项目资源文件 | |-test | | |-java 存放所有测试.java文件 | | |-resources 存放项目资源文件 |-

3、target 项目输出位置 |-pom.xml -用于标识该项目是一个Maven项目,手动创建Maven项目,使用Maven编译 1、创建项目根文件夹,例如Maven01 2、在Maven01文件夹中创建“pom.xml”文件 pom. xml文件中的内容如下:, 4.0.0 cn.gacl.maven.hello hello-first SNAPSHOT-0.0.1 ,首先进入到项目根目录,然后使用命令”mvn compile”进行编译 使用Maven编译完成之后,在项目根目录下会生成一个target文件夹 使用mvn clean命令清除编译结果,也就是把编译生成的target文件夹删掉,修

4、改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”$user.home/.m2/repository”中,$user.home表示当前登录系统的用户目录(如C:Usersgacl) Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。 找到apache-maven-3.2.3conf目录下的settings.xml文件,编辑setting.xml文件,加上下面的代码 E:/repository,使用Maven编译项目遇到“maven编码gbk的不可映射

5、字符”解决办法 解决这个问题的思路: 在maven的编译插件中声明正确的字符集编码编码编译使用的字符集编码与代码文件使用的字符集编码一致! 安装系统之后,一般中文系统默认字符集是GBK。我们安装的软件一般都继承使用操作系统的默认字符集。所以当在中文XP或者win7系统开发,在使用maven(mvn compile)编译项目的时候,就会出现“编码 gbk 的不可映射字符”: 这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK的缘故。 可以通过修改项目的pom文件,可以告诉maven这个项目使用UTF-8编码来编译 UTF-8 ,使用Maven编译、清理、测试、打包项目 1、使用M

6、aven编译项目,编译项目的命令是:mvn compile“ 2、使用Maven清理项目,清理项目的命令是:mvn clean“ 3、使用Maven测试项目,测试项目的命令是:mvn test“ 4、使用Maven打包项目,打包项目的命令是:mvn package“ 5、使用Maven部署项目,部署项目的命令是:mvn install 使用mvn install命令,就把maven构建项目的【清理】【编译】【测试】【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是mvn install,这个命令能够做的事情最多。,maven的编译,清

7、理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下: 1、先清理再编译:mvn clean compile“,还有的就是mvn clean test,mvn clean package,mvn clean install,这些组合命令都比较常用。,在别的项目中使用通过Maven安装生成的项目的jar包 在上面,我们使用mvn install命令将hello这个项目打包成了Hello-0.0.1-SNAPSHOT.jar包并且发布到本地的maven仓库E:repositorymegaclmavenHello0.0.1-SNAPSHOT中,下面我们来看看如何在别的项目中使

8、用Hello-0.0.1-SNAPSHOT.jar 1、新建HelloFriend项目,同时建立Maven约定的目录结构和pom.xml 2、编辑项目HelloFriend根目录下的pom.xml,添加如下的代码: ml文件, 4.0.0 me.gacl.maven HelloFriend 0.0.1-SNAPSHOT HelloFriend junit junit 4.9 test me.gacl.maven Hello 0.0.1-SNAPSHOT compile ,maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。 一、构建Ja

9、ve项目 1、使用mvn archetype:generate命令: mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false,maven Generating project in Batch mode问题的解决,有这样一个命令: mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-ap

10、p -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 这句话的命令是创建一个默认的项目,但我在执行这个命令时,命令行会停在 INFO Generating project in Batch mode 增加一个-X参数,可以查看详细信息 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveM

11、ode=false X 可以看到,程序停在了下面这一行。 DEBUG Searching for remote catalog: http:/repo1.maven.org/maven2/archetype-catalog.xml 去查询这个文件的时候网络比较差或者其他原因,导致挂在那里。,解决方法 1. 把上述地址复制到浏览器中,下载这个文件到本地。 2. 把文件archetype-catalog.xml复制到目录.m2repositoryorgapachemavenarchetypearchetype-catalog2.2下面。 3. 在上述命令后增加参数-DarchetypeCatalo

12、g=local,变成读取本地文件即可。,可以看到,Maven帮我们创建的项目是一个标准的Maven项目,不过目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放log4j.properties等)和src/test/resources(存放测试时用到的配置文件),1.2、JavaProject的pom.xml文件说明 pom.xml文件的节点

13、元素说明: pom文件的顶级节点 object model版本,对Maven2和Maven3来说,只能是4.0.0项目创建组织的标识符,一般是域名的倒写 定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中 打包的方式,有jar、war、ear等 项目的名称 项目的地址 属性配置,比如: 构建项目依赖的jar 其中由groupId、artifactId和version唯一的确定了一个项目坐标,二、构建JavaWeb项目 1、使用mvn archetype:create命令,如下所示: mvn archetype:crea

14、te -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 创建好的JavaWeb项目中目前只有src/main/resources目录,因此还需要手动添加src/main/java、src/test/java、src/test/resources 2.2、使用Maven打包发布Web项目 在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target

15、目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了.,除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:, 4.0.0 com.mycompany.app myWebApp war 1.0-SNAPSHOT myWebApp Maven Webapp http:/maven.apache.org junit junit 3.8.1

16、test myWebApp org.mortbay.jetty maven-jetty-plugin ,三、Maven创建项目的命令说明 mvn archetype:create或者mvn archetype:generate固定写法 -DgroupId组织标识(包名) -DartifactId 项目名称 -DarchetypeArtifactId指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project -DinteractiveMode是否使用交互模式 ar

17、chetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架.,每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。,依赖管理, junit jun

18、it 4.9 test me.gacl.maven Hello 0.0.1-SNAPSHOT compile ,2.2、依赖范围 依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下: pile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效 2.test:测试依赖范围。只对于测试classpath有效 3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api 4.runtime:运行时提供。例如:jdbc驱动 2.3、传递性依赖 MakeFriends.jar直接依赖于HelloFriends.jar,而HelloFriends.jar又直接依赖于Hello.jar,那么MakeFriends.jar也依赖于Hello.jar,这就是传递性依赖,只不过这种依赖是间接依赖,如下图所示:,聚合与继承 使用Maven构建多模块项目 ,创建Eclipse(Idea项目) Mvn eclipse:eclipse Mvn idea:idea,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1