maven学习笔记.docx_第1页
maven学习笔记.docx_第2页
maven学习笔记.docx_第3页
maven学习笔记.docx_第4页
maven学习笔记.docx_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

Maven学习笔记目录一、Maven的初步31、Maven的安装32、本地仓库的安装43、 Maven标准目录结构44、 Maven常用命令55、 Maven安装jar包到本地库或私服56、 MyEclipse中Maven关联配置7二、POM文件71、POM属性72、 优化POM.XML10三、依赖(引用哪些Jar)121、依赖包的查询122、依赖的传递性133、依赖的范围144、聚合和继承14四、仓库151、本地仓库152、中心仓库153、私有仓库154、项目的发布195、创建项目工程和设置权限20五、生命周期和插件221、生命周期22六、在MyEclipse里创建Maven项目241、Java web项目242、多模块项目26一、 Maven的初步1、 Maven的安装a): maven下载地址: /download.html。这个是maven的官网下载地址。我下载的版本是3.0.3。b): 下载后解压,配置环境变量。 和配置jdk的环境变量的方法类似,我的电脑-属性-高级-环境变量。 新建系统变量:M2_HOME,值为解压后目录,例: E:apache-maven-3.0.3。 在path里添加%M2_HOME%bin。c): 检查maven是否安装成功: 打开命令提示符,输入mvn version,查看maven是否安装成功。 出现以上提示表示maven安装成功。d): 了解maven的安装目录。 包含了运行Maven 的mvn 脚本 包含了一个负责创建Maven 运行所需要的类装载器的JAR文件 包含了一个用来自定义你机器上Maven 的一些行为的文件有了一个包含Maven 核心的JAR 文件 包含了一些 Maven 依赖的类库所需要的通告及权限 包含了 Apache Maven 的软件许可证 包含了一些安装指令2、 本地仓库的安装简单说明:一般情况下,下载的依赖包会自动存放在我的文档里,这样如果重装系统或者C盘出现什么问题,你的资源库就会出问题,以前下过的资源包以后又要重新下载,很麻烦。所以我们最好在别的地方建立自己的资源库,并进行配置。1):修改maven目录下的conf中的setting.xml 2): Maven默认本地库目录是$user_home/.m2/repository这个目录,但这个目录一般在C盘,所以需要手动更改本地库存储目录,笔者这里实战目录是D:Javamavenrepos这个目录,这个目录是自己手动创建的。还需要把Maven目录下改好的settings.xml文件复制到D:Javamaven这个目录3、 Maven标准目录结构src -main bin 脚本库 java java源代码文件 resources 资源库,会自动复制到classes目录里 filters 资源过滤文件 assembly 组件的描述配置(如何打包) config 配置文件 webapp web应用的目录。WEB-INF、css、js等 -test java 单元测试java源代码文件 resources 测试需要用的资源库 filters 测试资源过滤库 -site Site (一些文档)target 4、 Maven常用命令1):mvn version/-v 显示版本信息2):mvn archetype:generate 创建mvn项目mvn archetype:create DgroupId=com.oreilly DartifactId=my-app 创建mvn项目3): mvn clean -表示运行清理操作(会默认把target文件夹中的数据清理)4): mvn clean compile-表示先运行清理之后运行编译,会见代码编译到target文件夹中5): mvn clean package-运行清理和打包(生成target目录、编译、测试代码、生成测试报告、生成jar/war文件)6):mvn clean test-运行清理和测试7):mvn clean install-运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用8):mvn clean deploy-运行清理和发布(发布到私服上面)5、 Maven安装jar包到本地库或私服1): 安装到本地库: 例如安装jsr173.jar mvn install:install-file -DgroupId=com.bea.xml -DartifactId=jsr173-ri -Dversion=1.0 -Dpackaging=jar -Dfile=path to file2): 安装到私服 mvn deploy:deploy-file -DgroupId=com.bea.xml -DartifactId=jsr173-ri -Dversion=1.0 -Dpackaging=jar -Dfile=path to file -Durl=url -DrepositoryId=id3):示例:(1) 在命令行界面输入:mvn install:install-file -Dfile=jar包的路径名称 -DgroupId=坐标 -DartifactId=组名 -Dversion=版本号 -Dpackaging=jar。这里举一个例子,把本地的mypager-1.0-GA.jar导入到仓库:出现以下提示,说明本地包导入成功。(2) 但是注意看,它导入的路径是e:apache-maven-3.0.3lib,也就是说,执行成功后,jar包是导入了Maven的安装目录的lib下。所以我们需要把mypager文件夹拷贝出来到我们自己的本地库里,也就是E:workmavenrepos下。然后在pom.xml里引入的时候,我们就可以这么写: 6、 MyEclipse中Maven关联配置单击Update Settings按钮和Reindex按钮。说明:主要包含两个操作:指定Maven的安装目录和设置自定义本地仓库。二、 POM文件1、 POM属性1):用户定义的属性This is some text 3.3.0.ga$ hibernate.version 3.3.0.ga2):pom的属性:$project.version项目版本$project.groupId项目组$project.artifactId 构建编号 $proj 项目名称$project.description项目描述$project.build.sourceDirectorysrc 目录$project.build.scriptSourceDirectory 脚本目录 $project.build.testSourceDirectory 测试目录$project.build.outputDirectory输出目录$project.build.testOutputDirectory测试输出目录$project.build.directory构建目录$proj ect.basedir项目根目录Maven 的 Settings 属性:$s ettings . xxxxx位于/.m2/settings.xml。这个文件包含了用户特定的配置,如本地仓库的位置, 以及由某个特定用户配置的服务器,profile ,和镜像。3):环境变量:$env.PATH包含了 Maven 运行的当前PATH。该PATH包含了_个用来査找可运 行脚本和程序的目录列表$env.HOME这个变量指向了用户的 home 目录$env.JAVA_HOME指向了 Java 安装目录$env.M2_HOME指向了 Maven2 安装目录4):系统属性:系统属性描述j ava.versionJava运行环境版本j ava.vendorJava运行环境供应商j ava.vendor.urlJava供应商URLj ava.homeJava安装目录j ava.vm.specification.versionJava虚拟机规格说明版本j ava.vm.specification.vendorJava虚拟机规格说明供应商j Java虚拟机规格说明名称j ava.vm.versionJava虚拟机实现版本j ava.vm.vendorJava虚拟机实现供应商j Java虚拟机实现名称j ava.specification.vers ionJava运行环境规格说明版本j ava.specification.vendorJava运行环境规格说明供应商j Java运行环境规格说明名称java.class.versionJava类格式版本号java.class.pathJava类路径j ava.ext.dirs扩展目录的路径操作系统名称os.arch操作系统架构os.version操作系统版本file.separator文件分隔符(UNIX上是/ , Windows上是 )path.s eparator路径分隔符(UNIX上是:,Windows上是 ;)line.separator行分隔符在UNIX和Windows上都是n)用户帐户名称user.home用户home目录user.dir用户当前工作目录2、 优化POM.XML1): dependencyManagement元素能让你在子项目中引用一个依赖而不用显 式的列出版本号,举例:在父项目POM.XML中统一定义依赖版本:3.0.5.RELEASE3.6.1.Final3.5.0-Final在父项目的POM.XML中统一管理依赖版本,org.springframeworkspring-core$org.springframework.versionorg.hibernatehibernate-core$hibernate.versionorg.hibernatehibernate一annotations$hibernate.annotation.version子项目的POM.XML中使用依赖就不用指定Version元素:org.springframeworkspring-coreorg.hibernatehibernate-coreorg.hibernatehibernate一annotations三、 依赖(引用哪些Jar)1、 依赖包的查询1):所有的依赖都是通过坐标来进行存储的(GAV-groupId:反向域名结构项目名称、artifactId:项目名称-模块名称、version:版本号、type(该元素不必声明,其默认值是jar)、scope: 依赖的范围、optional: 标记依赖是否可选、exclusions: 用来排除传递性依赖)2):有一些网上的仓库提供了坐标的查询()3):通过设置依赖4):myEclpse中也提供的坐标的查询maven是如何搜索依赖的?首先会在本地仓库查询如果本地仓库没有,就去中央仓库查询2、 依赖的传递性1): 传递性依赖与排除依赖:有时候我们设置依赖时,比如想引入struts2,就会自动把struts2所依赖的包统统导进来,这就是传递性依赖。有时候这是好事,然而有时候我们不需要其中的一些传递性依赖,或者会引起包与包之间的冲突,我们可以使用exclusions元素声明排除依赖,exclusions可以包含一个或者多个exclusion子元素,因此可以排除一个或者多个传递性依赖。如下例:对于依赖的传递而言,主要是针对compile作用域传递3、 依赖的范围1): test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖2): compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去3): provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突4): runtime在运行的时候依赖,在编译的时候不依赖默认的依赖范围是compile4、 聚合和继承四、 仓库1、 本地仓库2、 中心仓库3、 私有仓库1): 局域网内部的仓库2):Nexus的安装(私服)a): 下载并且解压缩b): 将bin添加到环境变量c): nexus install将nexus安装到windows的服务中d): 修改e): nexus start启动服务3):仓库讲解 a): host的仓库。内部项目的发布仓库b): proxy的仓库。从远程中央仓库中寻找数据的仓库c): group仓库。组仓库用来方便开发人员进行设置的仓库3):私有仓库的设置a): 更新私有仓库的索引或者直接下载索引,将其拷贝到中央仓库的索引存储中b):设置镜像(设置setting.xml)c): 在settings.xml配置仓库,此时本机中的所有maven项目都会去私有仓库中查询依赖4、 项目的发布1): 设定release工厂和snapshots工厂2):设置访问的权限5、 创建项目工程和设置权限1): 创建两个工厂:release和policy的2): 配置权限3): 创建角色并且分配权限4): 创建用户5): 创建发布的工厂五、 生命周期和插件1、生命周期1): 三套生命周期a): clean pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作b): compile validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件,至目标目录,准备打包。 compile 编译项目的源代码。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 复制并处理资源文件,至目标测试目录。 test-compile 编译测试源代码。 process-test-classes test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。 prepare-package package 接受编译好的代码,打包成可发布的格式,如 JAR 。 pre-integration-test integration-test post-integration-test verify install 将包安装至本地仓库,以让其它项目依赖。 deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。 c): site pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上六、 在MyEclipse里创建Maven项目1、Java web项目说明:目前在MyEclipse8.6中直接创建Maven 项目中选择maven-archetype-webapp,存在报错。1):按maven目录结构创建web项目简单说明:这里的source folder和web root folder输入如上内容,是按maven的官方推荐的maven工程的结构来给source文件夹和web文件夹命名的。2):按maven目录结构手动添加文件夹(resources)3):按maven目录结构手动添加文件夹(单元测试对应的文件夹)4):在web项目Source中指定对应新建的文件夹(刷新工程后进行该操作)2、多模块项目创建Ma

温馨提示

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

评论

0/150

提交评论