您好,欢迎访问三七文档
Juyee项目研发学习总结项目管理-MavenJuyeeJuyee项目研发Maven简介Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven这个词可以翻译为“知识的积累”,也可以翻译成“专家”或“内行”。它主要服务于基于jave平台的项目构建、依赖管理和项目信息管理。Juyee项目研发为什么选择Maven1、需求项目环境搭建项目编码实现项目发布.......Juyee项目研发同类工具的比较MakeAntMavenJuyee项目研发Maven的基础知识-安装与配置在安装Maven之前,首先要确认你已经正确安装了JDK。Maven可以运行在JDK1.4及以上的版本上。Maven的下载页面:,其中包含针对不同平台的各种版本的Maven下载文件。将安装文件解压到你指定的目录中,如:D:\binjarxvfC:\Users\JuvenXu\Downloads\apache-maven-3.0--bin.zip“,这里的Maven安装目录是D:\bin\apache-maven-3.0,接着需要设置环境变量,将Maven安装配置到操作系统环境中。配置环境,变量名为M2_HOME,变量值为Maven的安装目录D:\bin\apache-maven-3.0。修改Path的变量,在变量值的末尾加上%M2_HOME%\bin;。测试maven环境,运行C:\Users\Juyeemvn–vJuyee项目研发Maven的基础知识-安装与配置设置MAVEN_OPTS环境变量,MAVEN_OPTS的值为:-Xms128m-Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要。配置用户范围settings.xml,Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。Juyee项目研发Maven的基础知识-编写POM?xmlversion=1.0encoding=UTF-8?projectxmlns=xmlns:xsi=xsi:schemaLocation=://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.juvenxu.mvnbook/groupIdartifactIdhello-world/artifactIdversion1.0-SNAPSHOT/versionnameMavenHelloWorldProject/name/projectJuyee项目研发Maven的基础知识-编写POM示例:1、手动建立Maven项目2、用IntelliJIDEA快速建立一个简单的Maven项目。Juyee项目研发Maven的基础知识-坐标依赖project......dependenciesdependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-web/artifactIdversion3.0.5.RELEASE/versionscopecompile/scopeclassifierjdk15/classifierexclusionsexclusion..../exclusion/exclusions/dependency/dependencies..../projectJuyee项目研发Maven的基础知识-依赖范围依赖范围(scope)编译有效测试有效运行时有效例子CompileYYYSpring-coreTest--Y--JUnitProvidedYY--Servlet-apiRuntime--YYJDBC驱动实现SystemYY--本地的,Maven仓库之外的类库文件Juyee项目研发Maven的基础知识-依赖的特点传递性依赖ABC传递性引发的问题比如有如下依赖关系:a-b-c-x(1.0)、a-d-x(2.0),那么哪个x包会被maven解析?还是两个包都会被解析?比如有如下依赖关系:a-b-x(1.0)、a-c-x(2.0),那么哪个x包会被maven解析?还是两个包都会被解析?依赖原则路径优先原则第一声明优先原则Juyee项目研发Maven的基础知识-传递依赖的关系第二直接依赖CompileTestProvidedRuntimeCompileCompile----RuntimeTestTest----TestProvidedProvided--ProvidedProvidedRuntimeRuntime----Runtime第一直接依赖ABC第一依赖第二依赖Juyee项目研发Maven的基础知识-依赖应用时的技巧依赖应用技巧排除依赖归类依赖优化依赖Juyee项目研发Maven的基础知识-排除依赖project......dependenciesdependencygroupIdcom.justonetech.sms/groupIdartifactIdsms-base/artifactIdversion1.0.0-SNAPSHOT/versionexclusionsexclusiongroupIdcom.justonetech/groupIdartifactIdjustonetech-core/artifactId/exclusion/exclusions/dependency/dependencies…/project示例:pclyJuyee项目研发Maven的基础知识-归类依赖project......propertiesorg.springframework.version3.0.5.RELEASE/org.springframework.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${org.springframework.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion${org.springframework.version}/version/dependency/dependencies/projectJuyee项目研发Maven的基础知识-优化依赖相关的命令mvndependency:listmvndependency:treemvndependency:analyze去除多余的依赖,显式地声明必要的依赖示例:pclyJuyee项目研发Maven的基础知识-仓库什么是仓库利益于坐标机制,任何Maven项目使用任何一个构建都是完全相同的。在此基础上,Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库。仓库的布局任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式。譬如:groupId=org.testng,artifactId=testng,version=5.8,classifier=jdk15,packaging=jar。生成的路径:org/testng/testng/5.8/testng-5.8-jdk15.jar。仓库的分类本地仓库远程仓库中央仓库私服Juyee项目研发Maven的基础知识-仓库的分类Maven用户Maven用户Maven用户私服中央仓库Jboss仓库其它仓库局域网上传构件下载构件下载构件下载构件缓存构件缓存构件缓存构件本地仓库Juyee项目研发Maven的基础知识-远程仓库的配置配置远程仓库-修改POM文件project...repositoriesrepositoryidjboss/idnameJBossRepository/nameurl问题:如果远程仓库不是公开的,而需要认证信息,该如何解决?Juyee项目研发Maven的基础知识-远程仓库的认证远程仓库的认证-修改setting.xmlsettings...serversserveridjboss/idusernamerepo-user/usernamepasswordrepo-pwd/password/server/servers.../settingsJuyee项目研发Maven的基础知识-部署至远程仓库project...destributionManagementrepositoryidproj-releases/idnameProjReleaseRepository/nameurl://192.168.1.100/content/repositories/proj-snapshots/url/snapshotRepository/destributionManagement.../projectJuyee项目研发Maven的基础知识-仓库镜像如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都胡够从它的镜像中获取。举个例子,是中央仓库在中国的镜像,由于地理位置的因素,该镜像往往能够提供比中央仓库更快的务。settings...mirrorsmirroridmaven.net.cn/idnameoneofthecentralmirrorsinchina/nameurlhttp://
本文标题:Maven教程
链接地址:https://www.777doc.com/doc-3339886 .html