Maven学习基础_第1页
Maven学习基础_第2页
Maven学习基础_第3页
Maven学习基础_第4页
Maven学习基础_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Maven使用基础 一、一、Maven的基本概念的基本概念 Maven(翻译为翻译为专家专家,内行内行)是跨平台的项目是跨平台的项目管理工具。主要服务于基于管理工具。主要服务于基于Java平台的项目构建,依平台的项目构建,依赖管理和项目信息管理赖管理和项目信息管理。 1.1、项目构建、项目构建 项目构建过程包括【清理项目】【编译项目】【测试项目】【生成测试报告】【打包项目】【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。 二、二、Maven安装安装 1、首先要确保电脑上已经安装了、首先要确保电脑上已经安装了JDK(要要jdk 1.6+的版的版本本),配置好,配置好JDK的环境变量

2、,使用如下的两个命令检的环境变量,使用如下的两个命令检查检查查检查JDK安装的情况安装的情况。 2、对、对apache-maven-3.2.3-bin.zip进行解进行解压缩压缩 3、设置系统环境变量:、设置系统环境变量:MAVEN_HOME 4、设置环境变量、设置环境变量Path,将,将%MAVEN_HOME%bin加入加入Path中,一定要注意要用分号;与其他值中,一定要注意要用分号;与其他值隔开。隔开。 %MAVEN_HOME%bin代表的就是E:apache-maven-3.2.3bin目录 5、验证、验证Maven安装是否安装是否成功。成功。输入mvnv命令查看Maven的相关信息

3、1、Maven项目的目录约定项目的目录约定 MavenProjectRoot(项目根目录)|-src|-main|-java存放项目的.java文件|-resources存放项目资源文件|-test|-java存放所有测试.java文件|-resources存放项目资源文件|-target项目输出位置|-pom.xml-用于标识该项目是一个Maven项目 手动创建手动创建Maven项目,使用项目,使用Maven编译编译 1、创建项目根文件夹,例如Maven01 2、在Maven01文件夹中创建“pom.xml”文件 pom. xml文件中的内容如下:4.0.0cn.gacl.maven.hel

4、lohello-firstSNAPSHOT-0.0.1 首先进入到项目根目录,然后使用命令”mvn compile”进行编译 使用Maven编译完成之后,在项目根目录下会生成一个target文件夹 使用mvn clean命令清除编译结果,也就是把编译生成的target文件夹删掉 修改从修改从Maven中心仓库下载到本地的中心仓库下载到本地的jar包的默认存储包的默认存储位置位置 从Maven中心仓库下载到本地的jar包的默认存放在”$user.home/.m2/repository”中,$user.home表示当前登录系统的用户目录(如C:Usersgacl) Jar包存放在这个位置不太好,我

5、们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录。 找到apache-maven-3.2.3conf目录下的settings.xml文件,编辑setting.xml文件,加上下面的代码 E:/repository 使用Maven编译项目遇到“maven编码gbk的不可映射字符”解决办法 解决这个问题的思路:在maven的编译插件中声明正确的字符集编码编码编译使用的字符集编码与代码文件使用的字符集编码一致! 安装系统之后,一般中文系统默认字符集是GBK。我们安装的软件一般都继承使用操作系统的默认字符集。所以当在中文XP或者win7系统开发,在使

6、用maven(mvncompile)编译项目的时候,就会出现“编码gbk的不可映射字符”:这个是由于代码使用的UTF-8,而maven编译的时候使用的GBK的缘故。可以通过修改项目的pom文件,可以告诉maven这个项目使用UTF-8编码来编译 UTF-8 使用使用Maven编译、清理、测试、打包项目编译、清理、测试、打包项目 1、使用、使用Maven编译项目,编译项目的命令是:编译项目,编译项目的命令是:mvn compile“ 2、使用、使用Maven清理项目,清理项目的命令是:清理项目,清理项目的命令是:mvn clean“ 3、使用、使用Maven测试项目,测试项目的命令是:测试项目,

7、测试项目的命令是:mvn test“ 4、使用、使用Maven打包项目,打包项目的命令是:打包项目,打包项目的命令是:mvn package“ 5、使用、使用Maven部署项目,部署项目的命令是:部署项目,部署项目的命令是:mvn install 使用mvninstall命令,就把maven构建项目的【清理】【编译】【测试】【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是mvninstall,这个命令能够做的事情最多。 maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:1、先清理再编译

8、:mvncleancompile“,还有的就是mvncleantest,mvncleanpackage,mvncleaninstall,这些组合命令都比较常用。 在别的项目中使用通过在别的项目中使用通过Maven安装生成的项目的安装生成的项目的jar包包 在上面,我们使用mvninstall命令将hello这个项目打包成了Hello-0.0.1-SNAPSHOT.jar包并且发布到本地的maven仓库E:repositorymegaclmavenHello0.0.1-SNAPSHOT中,下面我们来看看如何在别的项目中使用Hello-0.0.1-SNAPSHOT.jar 1、新建HelloFri

9、end项目,同时建立Maven约定的目录结构和pom.xml 2、编辑项目HelloFriend根目录下的pom.xml,添加如下的代码:ml文件4.0.0me.gacl.mavenHelloFriend0.0.1-SNAPSHOTHelloFriendjunitjunit4.9testme.gacl.mavenHello0.0.1-SNAPSHOTcompile maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程。 一、构建一、构建Jave项目项目 1、使用mvnarchetype:generate命令:mvn archetype:g

10、enerate-DgroupId=com.mycompany.app-DartifactId=myapp-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false mavenGeneratingprojectinBatchmode问题的解决有这样一个命令:mvnarchetype:generate-DgroupId=com.mycompany.app-DartifactId=my-app-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMo

11、de=false这句话的命令是创建一个默认的项目,但我在执行这个命令时,命令行会停在INFOGeneratingprojectinBatchmode增加一个-X参数,可以查看详细信息mvnarchetype:generate-DgroupId=com.mycompany.app-DartifactId=my-app-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=falseX可以看到,程序停在了下面这一行。DEBUGSearchingforremotecatalog:/m

12、aven2/archetype-catalog.xml去查询这个文件的时候网络比较差或者其他原因,导致挂在那里。 解决方法 1.把上述地址复制到浏览器中,下载这个文件到本地。 2.把文件archetype-catalog.xml复制到目录.m2repositoryorgapachemavenarchetypearchetype-catalog2.2下面。 3.在上述命令后增加参数-DarchetypeCatalog=local,变成读取本地文件即可。可以看到,Maven帮我们创建的项目是一个标准的Maven项目,不过目前Maven只是帮我们生成了src/main/java(存放项目的源代码)和

13、src/test/java(存放测试源代码)这两个目录,但实际项目开发中我们一般都会有配置文件,例如perties,所以我们还需要手动创建src/main/resources(存放项目开发中用到的配置文件,如存放perties等)和src/test/resources(存放测试时用到的配置文件) 1.2、JavaProject的的pom.xml文件说明文件说明 pom.xml文件的节点元素说明: pom文件的顶级节点objectmodel版本,对Maven2和Maven3来说,只能是4.0.0项目创建组织的标识符,一般是域名的倒写定义了项目在所属组织的标识符

14、下的唯一标识,一个组织下可以有多个项目当前项目的版本,SNAPSHOT,表示是快照版本,在开发中 打包的方式,有jar、war、ear等项目的名称项目的地址 属性配置,比如:构建项目依赖的jar 其中由由groupId、artifactId和和version唯一的确定了一个项目坐标唯一的确定了一个项目坐标 二、构建二、构建JavaWeb项目项目 1、使用mvn archetype:create命令,如下所示: mvn archetype:create-DgroupId=com.mycompany.app-DartifactId=myWebApp-DarchetypeArtifactId=mav

15、en-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目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了. 除了使用Tomcat服务

16、器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:4.0.0com.mycompany.appmyWebAppwar1.0-SNAPSHOTmyWebAppMavenWebappjunitjunit3.8.1testmyWebApporg.mortbay.jettymaven-jetty-plugin 三、三、Maven创建项目的命令说明创建项目的命令说明 mvnarchet

17、ype:create或者mvnarchetype:generate固定写法 -DgroupId组织标识(包名) -DartifactId项目名称 -DarchetypeArtifactId指定ArchetypeId,maven-archetype-quickstart,创建一个JavaProject;maven-archetype-webapp,创建一个WebProject -DinteractiveMode是否使用交互模式 archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,Darchetyp

18、eArtifactId是可用的mvn项目骨架.每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个JavaProject,而maven-archetype-webapp骨架则是用来创建一个JavaWebProject。 依赖依赖管理管理junitjunit4.9testme.gacl.mavenHello0.0.1-SNAPSHOTcompile2.2、依赖范围依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系.主要的是三种依赖关系如下:pile:默认编译依赖范围。对于编译,测试,运行三种classpath都有效2.test:测试依赖范围。只对于测试classpath有效3.provided:已提供依赖范围。对于编译,测试的classpat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论