您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Maven3应用与实战
LOGOMaven3应用******************@163.com2主要内容Maven介绍、安装、常用命令Eclipse下Maven项目开发坐标与依赖多模型开发常用插件和自动化部署内部仓库使用生成站点Maven高级主题LOGOMaven介绍Maven是一个项目管理工具,它包含了一项目对象模型(ProjectObjectModel),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManangementSystem),和用来运行定义在生命周期阶段中插件目标的逻辑。Maven是面向技术层面,针对Java开发项目管理工具,它提供了构建工具所提供功能的超集,除了构建功能之外,Maven还可以管理项目结构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的交流与协作。指导开发:提供了Java项目的最佳开发实践,自由开发项目骨架而可自动生成项目结构。自动编译:不仅仅只像Ant自动编译,还包括测试,打包,发布,文档生成,项目站点生成……依赖管理:Maven可以方便地管理应用程序依赖,例如第三方依赖、模型依赖无限扩展:插件模式可以无限增强Maven功能,例如通过Tomcat、Jetty插件可以自由控制其服务器。持续集成:鼓励开发者积极提交代码,更早地发现程序错误,在并行开发中稳妥推进。开发协作:更简单和谐的团队协作•开发者通过Maven管理项目从中受益:LOGO项目生命周期几个重要的过程:compile:编译test:测试package:打包install:安装deploy:发布Maven安装下载安装包地址:当前版本为3.0.4Windows系统下安装:首先需要确认系统中装有JDK(版本1.4+);将压缩包解压到本地磁盘某目录中,该目录则称为安装目录。例如D:\opensource\apache-maven-3.0目录结构:binMaven的运行脚本bootMaven自己的类装载器conf该目录下包含了全局行为定制文件setting.xmllibMaven运行时所需的类库...Maven安装配置环境变量M2_HOME=安装目录在path变量中增加%M2_HOME%\binMAVEN_OPTS=-XmsNNNm–XmxNNNm(非必要项,可防止内存溢出。其中NNN表示具体的内存数量)检查安装正确性在命令行提示符下执行:mvn–v能看到Maven和JDK的版本号为安装正确小试Maven命令mvnhelp:system该命令将会下载help插件并运行它,且打印出Java系统属性和环境变量Maven名词解释Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,PojectObjectModel)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。Artifact:artifact是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId和artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中,否则Maven无法找到(识别)它们。Dependency:为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。Repository:仓库。setting.xml$user.home/.m2/repository/setting.xml为用户范围的配置文件$M2_HOME/conf/setting.xml为全局范围的配置文件,修改后将影响本机所有用户的配置建议:只修改用户级别的配置,既不影响其它用户,也不影响后期升级。配置介绍localRepository:自定义本地库路径,默认在$user.home/.m2中interactiveMode:offline:是否每次编译都去查找远程中心库pluginGroups:插件组,例如org.mortbay.jettyproxies:通过代理访问外部库servers:集成认证服务,例如集成Tomcatmirrors:镜像库,可以指定内部中心库profiles:个性配置,需要在Activation标签中激活activeProfiles:表示激活的profileMaven仓库远程公用仓库Maven内置了远程公用仓库:这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主。内部中心仓库也称私有共享仓库(私服)。一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。Nexus和Artifactory均可搭建仓库服务器。但后者支持LDAP认证,这样就可以将私有仓库的认证集成到公司已经有的LDAP认证服务器。内部中心库又可以连接第三方库,例如Jboss中心库、Spring中心库,以随时获得最新版本的第三方构件。本地仓库Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,通常默认在$user.home/.m2/repository下。修改本地库位置:在$M2_HOME/conf/setting.xml文件的localRepository元素中指定路径,例如:localRepositoryD:/my_repository/localRepository12Maven常用命令检测Maven、JDK版本mvn–v或者mvn-version获取帮助选项mvn–h或者mvn–help显示详细错误信息mvn–e创建Java项目mvnarchetype:create-DgroupId=${groupId}-DartifactId=${artifactId}示例:mvnarchetype:create-DgroupId=com.howsun-DartifactId=myApp-Dversion=0.113创建Web项目mvnarchetype:create-DgroupId=${packageName}-DartifactId=${webappName}-DarchetypeArtifactId=maven-archetype-webapp创建其它项目(例如SSH、JPA、JSF、Seam…)mvnarchetype:generate然后根据提示选择项目骨架、groupid、artifactid、版本号…Maven3已有上百个项目骨架转换成Eclipse工程mvneclipse:eclipsemvneclipse:clean//清除Eclipse设置信息转换成idea项目:mvnidea:ideaMaven常用命令14编译mvncompile编译测试代码mvntest-compile产生Site:mvnsite测试mvntest//运行测试mvntest-Dtest=${类名}//单独运行测试类清除mvnclean//将清除原来编译的结果打包mvnpackagemvnpackage–Dmaven.test.skip=true//打包时不执行测试发布mvninstall//将项目打包成构件安装到本地仓库mvndeploy//发布到本地仓库或服务器(例如Tomcat、Jboss)Maven常用命令手动添加构件到仓库mvninstall:install-file-Dfile=${jar包文件位置}-DgroupId=${groupId}-DartifactId=${artifactId}-Dversion=${版本号}-Dpackaging=jar-DgeneratePom=${是否同时创建pom文件}复制依赖构件到相应目录mvndependency:copy-dependencies-DoutputDirectory=${目标目录}-DexcludeScope=${scope}-Dsilent=true示例:mvndependency:copy-dependencies-DoutputDirectory=WebRoot/WEB-INF/lib-Dsilent=true-DincludeScope=runtime显示一个插件的详细信息(configuration,goals等):mvnhelp:describe-Dplugin=pluginName-DdetailMaven常用命令pom.xml是Maven项目的核心配置文件,位于每个工程的根目录,指示Maven工作的元数据文件。节点介绍project:文件的根节点.modelversion:pom.xml使用的对象模型版本.groupId:创建项目的组织或团体的唯一Id.artifactId:项目的唯一Id,可视为项目名.packaging:打包类型,一般有JAR,WAR,EAR等version:产品的版本号.name:项目的显示名,常用于Maven生成的文档。url:组织的站点,常用于Maven生成的文档。description:项目描述,常用于Maven生成的文档。dependencies:构件依赖parent:模型继承dependencyManagement:依赖管理reporting:创建报告build:构建repositories:引用第三方仓库licenses:许可pom.xmlprojectxmlns=xmlns:xsi=xsi:schemaLocation=://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!--TheBasics--groupId.../groupIdartifactId.../artifactIdversion.../versionpackaging.../packagingdependencies.../dependenciesparent.../parentdependencyManagement.../dependencyManagementmodules.../modulesproperties.../properties!--BuildSettings--build.../buildreporting.../repor
本文标题:Maven3应用与实战
链接地址:https://www.777doc.com/doc-3326210 .html