Maven的基本讲解与安装

Maven的讲解

一、maven的基本概念和讲解

1、导读

1) 以前要想在eclipse里用Maven功能都是要额外装m2eclipse插件,但是从eclipse4.4(代号Luna,
2014年推出)开始,maven成了它的标准插件,从官网下载下来的eclipse就已经自带Maven功能

2) SpringFramework官网,不再提供Spring的jar包下载链接,而是只提供了Maven仓库配置信息。

3) 在github网站里,很多流行的框架,其源码根目录下都有一个pom.xml的文件,也就是说默认都是用
Maven来构建项目。

4) 在建行这边开发的项目,基本都是用Maven来构建,虽然开发的电脑不能联外网,但建行内部用
Nexus自己搭建了一个Maven仓库。

5) 惠普里做的项目也是用Maven构建,也是内部自建Maven仓库

小结:1> 正是因为使用maven会带来很多方便的 ,标准统一 所以我们才提倡使用maven
     2> 并不是因为maven的出现就废弃原来的将原来的jar包拷贝到项目中的做法

2、什么是maven

	中文意思为“知识的积累”,是Apache基金会出产的一个进行项目构建的工具,其核心
是pom.xml(pom=Project Object model 项目对象模型),定义了项目的基本信息,用于
描述项目如何构建,声明项目依赖等
	与之类似的工具:Ant,gradle
	
	PS: ***Maven是Java平台下的一款项目构建和依赖管理(统一管理jar包)的自动化管理工具
	
	提示:
	
	  项目构建:将我们的源代码、配置文件变成可执行的war包或者jar包。
	  
	  依赖管理(统一管理jar包):项目需要正常运行,必须依赖一些第三方的jar包,对于这些第三方
	的jar包的管理,可以认为就是依赖的管理

3、maven的特点

1) 原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借助Maven,可以
将jar包仅仅保存在“仓库”中,有需要使用的工程只需要“引用”这个文件,并不需要重复复制到工程中。

2) 原来的项目中所需要的jar包都是提前下载好的,而Maven在联网状态下会自动下载所需要的jar包。
首先在本地仓库中找,找不到就在网上进行下载。

3) 原来的项目中一个jar包所依赖的其他jar包必须手动导进来,而Maven会自动将被依赖的jar包导进来。

4) 原来的项目一个项目就是一个工程,而借助Maven可以将一个项目拆分成多个工程。

二、Maven环境的配置

要是配置Maven的环境,需要先安装jdk(版本最好是1.6+)并且要配置好jdk的环境变量
maven的环境配置(安装):
   1) 去官网下载maven的安装包:apache-maven-3.5.0-bin
   2) 解压apache-maven-3.5.0-bin.zip,并把解压后的文件夹下的apache-maven-3.5.0-bin文件夹移动
   到D:\tools下,如果没有tools这个文件夹的话,请自行创建。

   3) 配置环境变量:
		新建系统变量:  M2_HOME
		变量值: D:\tools\apache-maven-3.5.0-bin\apache-maven-3.5.0
		编辑系统变量: Path         
		添加变量值: %M2_HOME%\bin;
   4) 找出黑窗体:输入指令mvn -v若出现下图所示即为正确

在这里插入图片描述

三、配置Eclipse支持maven的插件

1) 打开eclipse然后点击Window-->Preferences-->Maven-->Installations,点击Add添加maven
然后Apply
2) 再点击User Settings进行设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、构建一个maven项目

1.创建一个maven项目:
	new-->Maven Project-->maven-archetype-quickstart(这样是普通的Java项目)-->

	Group Id:意思为公司名或者组织名
	com.baidu.bj    org.apache.uk
	例子: pro.yf.bj

	Artifact Id:项目的名字
	例子: Mavne_HelloWorld

	Version:版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本

友情提示:上面的这三个因素构成了一个项目的基本信息(坐标),这是很重要的

	Package:项目中源代码存放的包的路径

在这里插入图片描述
在这里插入图片描述

设定本地仓库的位置

1.配置好的eclipse进行设置
1.1设置eclipse关联上maven
Windows–>Prefrences–>Installations–>Add。installation name选maven的根目录,
然后一直按确定就OK啦

1.2更改本地仓库
友情提示:当maven环境配置好之后就会在当前电脑的用户下产生一个名字为.m2的文件夹,但是
作为开发者一般需要更改路径

但是在win10系统下可以自动产生的,不过这个没什么影响

怎样更改:
1)先修改D:\tools\apache-maven-3.5.0-bin\apache-maven-3.5.0\conf下的settings.xml,设定本地仓
库的路径和使用国内阿里镜像
<localRepository>D:\maven_new_localrepository</localRepository> 
                                               
    <mirror> 
        <id>alimaven</id> 
        <name>aliyun maven</name> 
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror> 
 备注:两者配置的位置不是紧挨着的,要分别配在不同的对应的位置上

2)去到D:\tools\apache-maven-3.5.0-bin\apache-maven-3.5.0\conf将settings.xml复
制一份到C:\Users\Jack\.m2
                                        
3)在D盘创建一个名字为maven_new_localrepository的文件夹

   1.3验证更改本地仓库是否成功:
     在dos下输入指令:mvn help:system,此时会看到maven_new_localrepository文件夹下
  开始下载一些文件了

推荐一个mvn的好的下载的网站:https://mvnrepository.com/

2.maven构建仓库的类型分类:                                     
     2.1本地仓库: 默认地址为~/.m2/
     2.2远程仓库又可简单分成两类: 
        中央仓库:http://repo1.maven.org/maven2/    等价于    https://mvnrepository.com/
        私服:是一种特殊的远程仓库,其实就是自己搭建的一个“类中央仓库”
 

五、pom.xml的配置

1、pom.xml中基本节点的含义

基本节点的含义:
    modelVersion

  指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0
       
groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,
	如org.myproject.mojo生成的相对路径为:/org/myproject/mojo

artifactId:项目的通用名称

version:项目的版本

packaging:打包机制,如pom,jar(默认的),maven-plugin,ejb,war,ear,rar,par

name:项目的名称

url:项目开发团队的网址,无关紧要,可以省略

description:项目描述

2、dependencies和dependency

	前者包含后者。Maven的一个重要作用就是统一管理jar包,为了一个项目可以build或运行,项
目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency
dependcy:表示出依赖关系,即一个dependcy就是一种jar包

里面的属性值得意思:

	type:默认为jar类型,常用的类型有:jar,ejb-client,test-jar...,
			可设置plugins中的extensions值为true后在增加 新的类型
			
	scope:是用来指定当前包的依赖范围,maven的依赖范围常有以下四种值:
	compile(编译范围)
	
    provided(已提供范围)
    
    runtime(运行时范围)
    
    test(测试范围)
    
    system(系统范围)   
    
    optional:设置指依赖是否可选,默认为false,即子项目默认都继承,为true,则子项目必需显
        	示的引入,与dependencyManagement里定义的依赖类似 。	
        	
    exclusions:如果X需要A,A包含B依赖,那么X可以声明不要B依赖,
        	只要在exclusions中声明exclusion.		
        	
    exclusion:是将B从依赖树中删除,如上配置,alibaba.apollo.webx不想
        	使用com.alibaba.external  ,但是alibaba.apollo.webx是集成
        	了com.alibaba.external,r所以就需要排除掉.
        	
    version;版本号     
      
	systempath:当scope的值为system时,提供相应的路径		
	
简而言之:

内部包含若干<dependency>{ groupId, artifactId,version 三个基本属性    
	/*1.这三个是最常用的,2只要有这三个就能基本上能用了*/
	type :默认jar类型
	scope: 当前包依赖类型
	optional: false时, 继承这个项目所有的子项目。 true时, 该项目的子项目需要显式引入
	exclusion :排除某项 }                  

利用maven的时候产生jar冲突

	用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,
但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排
除一些不需要同时下载的依赖jar 

3、pom.xml中不太常用的节点

1.dependencyManagement:
   通常在最顶层父pom中(在使用maven的继承特性的使用会用到),让所有在子项目中引用一个
依赖而不用显式地列出版本号。

2.modules:
     将项目分块,达到高内聚,低耦合的目的
             
3.properties: 
	声明一些常量:设置编码集,设置某一系列类型的框架的版本
      如:
       <file.encoding>UTF-8<file.encoding>    
      <spring.version>3.2.3.RELEASE</spring.version>
       引用时 :  ${file.encoding}   ${spring.version}       
       也可以通过project.xx引用项目的定义的属性,
       		例如: ${project.groupId} 引用当前pom定义的groupId        

4.build: 构建项目需要的信息
      defaultGoal  默认目标
      directory   制定buildtarget目标下的目录
            
5.plugin: 声明项目中所使用的插件   
      
6.pluginManagement: 
	作用类似于dependencyManagement, 定义子项目中的插件。 这样在子项目中使用插件时,
  可以不用指定其版本,由父项目统一进行管理。
     
7.parent:
	父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。
  坐标包括group ID,artifact ID和 version。
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值