Maven学习笔记

一:Maven下载

1:下载压缩包

官网地址
在这里插入图片描述

2:解压文件,并配置环境变量

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

3:修改配置文件

1:打开conf目录的settings.xml文件,修改本地仓库地址
默认为${user.home}/.m2/repository,可以不修改
在maven目录下新建maven-repo目录,修改本地仓库目录

在这里插入图片描述

2:修改镜像

在这里插入图片描述

3:修改jdk版本

在这里插入图片描述

4:在项目中配置maven

在这里插入图片描述

二:Maven生命周期

1:maven的三个内置周期

默认:进行项目编译打包等工作
站点:生成项目报告,站点,发布站点
清洁:为执行以上工作所作的必要清理,即删除target文件夹

2:默认的生命周期的几个重要阶段

1:编译:编译项目源代码
2:打包:用可分配格式(入jar)进行打包
3:安装:将软件包安装到本地仓库

三:maven常见命令

在这里插入图片描述

四:引入依赖时的scope标签

1:编译依赖范围(compile)

默认依赖范围,测试,运行,编译都有效

2:测试依赖范围(test)

只对测试的classpath有效

        <dependency>
     	   <groupId>junit</groupId>
     	   <artifactId>junit</artifactId>
      	  <version>4.12</version>
      	  <scope>test</scope>
   	    </dependency>

3:已提供依赖范围(provided)

典型的有servlet-api,对编译和测试的classpath有效,对运行无效

        <dependency>
      	    <groupId>javax.servlet</groupId>
      	    <artifactId>javax.servlet-api</artifactId>
        	<version>4.0.1</version>
        	<scope>provided</scope>
  	    </dependency>

4:运行时依赖范围(runtime)

典型的有jdbc驱动实现,主代码在编译时只需要jdk提供的jdbc接口,在测试运行时才需要此依赖所引用的接口。因此对测试运行的classpath有效,对编译无效

        <dependency>
       		 <groupId>mysql</groupId>
       		 <artifactId>mysql-connector-java</artifactId>
       		 <version>5.1.7</version>
      	 	 <scope>runtime</scope>
 	    </dependency>

五:依赖传递

当项目所依赖的jar包也依赖于其它jar包时,只需引入项目所依赖的jar包即可,maven会自动引入jar包所依赖的其它jar包
a:当一个项目依赖了同一个jar包的不同版本时,后引入的版本会覆盖先引入的版本
b:最短路径优先原则:当项目只依赖A,而A依赖B,D,B依赖D时,那么会引入A所依赖的D的版本
在这里插入图片描述

c:路径相同先声明原则:当一个项目依赖A,B俩个不同jar包,而这俩个jar包又依赖同一个jar包时,项目会引入先依赖的jar包所声明的jar包的版本,如下图,最终项目将会引用1.2.3版本
在这里插入图片描述
当maven所引入的jar包版本过低时,如上图引入D.jar的版本过低时,可以手动排除重新引入

   <dependency>
        <groupId>dev.tuxjsql</groupId>
        <artifactId>hikaricp-cp</artifactId>
        <version>2.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

六:maven仓库

仓库分类

1:本地仓库
settings里配置的本地仓库
2:远程仓库 (3种)

  • 中央仓库
  • 私服
  • 其它公共仓库

maven项目常用仓库

  • 中央仓库:settings中默认的仓库
  • 镜像仓库:通过settings.mirrors.mirror中配置的仓库
  • 全局profile仓库:通过settings中的settings.repositories.repository配置
  • 项目仓库:通过pom.xml中的repositories.repository配置
  • 项目profile仓库:通过pom.xml中的profiles.profile.repositories.repository配置
  • 本地仓库
仓库搜索顺序

本地仓库->全局profile仓库->项目profile仓库->项目仓库->镜像仓库->中央仓库

七:maven插件

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
    <source>1.8</source><!--        源码使用的jdk版本-->
    <target>1.8</target><!--        需要生成目标的class文件的编译版本-->
    <encoding>UTF-8</encoding>
</configuration>
</plugin>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值