Maven学习基础

上传人:美*** 文档编号:243310515 上传时间:2024-09-20 格式:PPT 页数:24 大小:341.46KB
返回 下载 相关 举报
Maven学习基础_第1页
第1页 / 共24页
Maven学习基础_第2页
第2页 / 共24页
Maven学习基础_第3页
第3页 / 共24页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,2016/8/10,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,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,、设置环境变量,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 ,存放项目资源,文件,|-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,文件夹删,掉,修改从,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,的不可映射,字符”,解决,办法,解决这个问题的思路: 在,maven,的编译插件中声明正确的字符集编码编码,编译使用的字符集编码与代码文件使用的字符集编码一致,!,安装系统之后,一般中文系统默认字符集是,GBK,。我们安装的软件一般都继承使用操作系统的默认字符集。所以当在中文,XP,或者,win7,系统开发,在使用,maven,(,mvn compile,)编译项目的时候,就会出现“编码,gbk,的不可映射字符”: 这个是由于代码使用的,UTF-8,,而,maven,编译的时候使用的,GBK,的缘故。 可以通过修改项目的,pom,文件,可以告诉,maven,这个项目使用,UTF-8,编码来,编译,UTF-8,使用,Maven,编译、清理、测试、打包项目,1,、使用,Maven,编译项目,编译项目的命令是:,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,的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:,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,中,下面我们来看看如何在别的项目中使用,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,构建项目的过程,。,一、构建,Jave,项目,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-app -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 -DinteractiveMode=false,X,可以看到,程序停在了下面这一行,。,DEBUG Searching for remote catalog:,http:/,repo1.maven.org/maven2/archetype-catalog.xml,去查询这个文件的时候网络比较差或者其他原因,导致挂在那里。,解决,方法,1.,把上述地址复制到浏览器中,下载这个文件到本地,。,2.,把文件,archetype-catalog.xml,复制到目录,.m2repositoryorgapachemavenarchetypearchetype-catalog2.2,下面,。,3.,在上述命令后增加参数,-DarchetypeCatalog=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,文件的节点元素说明:,pom,文件的顶级节点,object model,版本,对,Maven2,和,Maven3,来说,只能是,4.0.0,项目创建组织的标识符,一般是域名的倒写,定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目,当前项目的版本,,SNAPSHOT,,表示是快照版本,在开发中,打包的方式,有,jar,、,war,、,ear,等,项目的名称,项目的地址,属性配置,比如,:,构建项目依赖的,jar,其中,由,groupId,、,artifactId,和,version,唯一的确定了一个项目坐标,二、构建,JavaWeb,项目,1,、,使用,mvn archetype:create,命令,如下所示,:,mvn archetype:create,-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,目录,在这个目录下会打包成,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,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,是否使用交互,模式,archetype,是,mvn,内置的一个插件,,create,任务可以创建一个,java,项目骨架,,DgroupId,是软件包的名称,,DartifactId,是项目名,,DarchetypeArtifactId,是可用的,mvn,项目,骨架,.,每一个骨架都会建相应的目录结构和一些通用文件,最常用的是,maven-archetype-quickstart,和,maven-archetype-webapp,骨架。,maven-archetype-quickstart,骨架是用来创建一个,Java Project,,而,maven-archetype-webapp,骨架则是用来创建一个,JavaWeb Project,。,依赖,管理,junit,junit,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,,这就是传递性依赖,只不过这种依赖是间接依赖,如下图所示:,聚合与,继承, eclipse:eclipse,Mvn idea:idea,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!