Maven 学习记录(一)概念理解

写在前面:

  • 本文转载了https://blog.csdn.net/u012152619/article/details/51473404的很多内容,多谢!
  • 刚开始写,刚开始学,不好之处还请批评指正!

一、介绍

  • Maven是Apache软件基金会组织维护的一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。它并不是一个框架,但是它其中的一个功能是用来帮助开发者管理框架所需的jar包。

  • 当然,管理jar只是maven的一个基本功能,它还有许多各种各样的功能便于管理项目,比如管理多模块协同开发,内置web server快速开发测试,连接控制远程服务器,自动上传部署项目,一键切换服务器环境等等。

  • Maven正在逐渐取代Ant,很多java开源软件(Spring、Struts2 ……)已经使用maven。

  • 鉴于初学,我先掌握Jar管理吧。

二、Maven核心概念

(一)Maven的三大仓库:

  1. 本地仓库:Maven最先在本地仓库寻找依赖,下载的依赖也会存放在此处。
    默认地址是本机 C:\Users\dell.m2\repository;我这边做了修改,是F:\dev\plugins\maven\m2\repository。
    在maven的解压目录中的conf/settings.xml即可修改。如下:
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository -->
  <localRepository>F:\dev\plugins\maven\m2\repository</localRepository>
  1. 远程仓库(私服)
    还没搭建过,后期有机会再补上。

  2. 中央仓库
    所有的maven项目都有一个超级POM.XML

  • 超级pom.xml 指所有的pom.xml都继承的一个父pom,像java中所有类都是Object的子类。

  • 如何在windows文件系统中找到super pom :

  1. 在maven本地仓库的如下位置:org\apache\maven\maven-model-builder\3.0.4
  2. 打开该路径下的如下jar包: maven-model-builder-3.0.4-sources.jar
  3. 在该jar包的如下路径下: org\apache\maven\model\
  4. 可以找到超级pom:pom-4.0.0.xml

其中默认配置了中央仓库,如下:

<repositories> 
    <repository> 
      <id>central</id>  
      <name>Central Repository</name>  
      <url>http://repo.maven.apache.org/maven2</url>  
      <layout>default</layout>  
      <snapshots> 
        <enabled>false</enabled> 
      </snapshots> 
    </repository> 
  </repositories>  

可以看到,默认的地址是:http://repo1.maven.org/maven2/ 可以根据需要改成速度更快的公共中央服务。
我这边只是为这个中央服务设置了一个阿里的镜像,从而提高下载速度;如下:

  <mirrors>
	<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	  <!--这段话是什么意思呢?关键点在于<mirrorOf>central</mirrorOf>,它是说,把我提供的这个阿里云的源当作central源的代理吧,以后你需要访问那个名为central的源时,就把所有的请求转发到我阿里云上-->
      <mirrorOf>central</mirrorOf>  
	  <!--
		那么central又是什么呢?原来maven自己内置了一个超级POM,里面预先定义了名为central对应的地址:
		<repositories>
		  <repository>
			<id>central</id>
			<name>Central Repository</name>
			<url>http://repo.maven.apache.org/maven2</url>
			<layout>default</layout>
			<snapshots>
			  <enabled>false</enabled>
			</snapshots>
		  </repository>
		</repositories>
		可以看到,central这个id对应的是http://repo.maven.apache.org/maven2
	  -->
    </mirror>
  </mirrors>
  • 下面是从别人那里copy过来的其他镜像:
    <mirror>    
      <id>repo2</id>    
      <mirrorOf>central</mirrorOf>    
      <name>Human Readable Name for this Mirror.</name>    
      <url>http://repo2.maven.org/maven2/</url>    
    </mirror>

    <mirror>    
      <id>ui</id>    
      <mirrorOf>central</mirrorOf>    
      <name>Human Readable Name for this Mirror.</name>    
     <url>http://uk.maven.org/maven2/</url>    
    </mirror>

  
    <mirror>    
      <id>ibiblio</id>    
      <mirrorOf>central</mirrorOf>    
      <name>Human Readable Name for this Mirror.</name>    
     <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>    
    </mirror>

    <mirror>    
      <id>jboss-public-repository-group</id>    
      <mirrorOf>central</mirrorOf>    
      <name>JBoss Public Repository Group</name>    
     <url>http://repository.jboss.org/nexus/content/groups/public</url>    
    </mirror>

    <mirror>    
      <id>JBossJBPM</id>   
    <mirrorOf>central</mirrorOf>   
    <name>JBossJBPM Repository</name>   
    <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>  
    </mirror>

从别人那里拷贝过来的 maven 项目寻找 jar 的路径图:
​​在这里插入图片描述

(二)Maven的生命周期

1. 概念理解:

  • 结合网上的解释:Maven对项目开发过程中,编译、测试、打包、部署等阶段管理时,将“对项目执行的操作任务”抽象出来的阶段概念.

2. Maven 三套独立的生命周期

  • Clean 在进行真正的构建之前进行一些清理工作
  • Default 构建的核心部分,编译,测试,打包,部署等等
  • Site 生成项目报告,站点,发布站点

3. 生命周期导图

  • 每个生命周期包含很多阶段,我们执行的命令 如 mvn install 中的“install” 就是来自default生命周期的一个阶段。如下copy的图:
    在这里插入图片描述
    在每个生命周期内执行对应的阶段命令,同时也会出发该阶段之前的阶段任务。如

  • 执行“mvn clean” maven 会先执行 “mvn pre-clean” 再执行 “clean” 。

  • 执行“mvn post-clean” ,那么 “pre-clean”,“clean” 都会被运行。

  • 这也是为什么我们执行install,前面的编译、打包、验证都会被执行。

4. 各个阶段详细说明

在上图中,clean和site都已经列出所有的阶段,但是default并没有列出22个所有阶段,各个阶段及其详细说明见
https://blog.csdn.net/u012152619/article/details/51473404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值