Maven安装与配置

一、什么是Maven

  Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。(摘自百度百科)

  只看这个定义好像不能让我们理解它到底是用来干什么的。回顾一下,以前我们创建项目的时候,需要手动的导入各种各样的jar依赖,我们会先确定这个项目要用到哪些jar包,具体用哪个版本,然后去网上找到这些jar包,下载后再手动导入到项目中去。如果所需要的jar包较少还好,如果一个项目几十个jar包那么单单处理这个事情就会非常复杂。

  那么这时候如果有个地方能把所有的各个版本的jar包都收集起来,我们用的时候直接根据名称版本去这个地方拿就行了,这样就会方便许多。这就是maven所做的事,Maven创建了一个中央仓库,它里面包含了几乎所有的各个版本的jar包,我们在使用的时候只需要列一个清单,告诉maven要用到哪些叫什么名字、什么版本的jar包,maven就会自动帮我们下载下来并导入到项目中。

  那从maven下载的jar包是直接放到我们的项目中的吗,答案是否定的。我们还回到之前没用maven的时候,假如我们第一次创建了一个比如是ssm的项目,那么我们会收集到所需要的相关jar包,那么下次再用的时候就可以直接从这个项目中拿,然后再根据项目的需求,把多余的去掉,不够的找到添加进来。既然这样,那不如自己在本地建一个专门存放jar包的文件夹,把自己用过的jar包都放进来,随着写的项目越来越多,这个文件夹里的jar包也会越来越多,可能以后再建项目的时候直接来这个文件夹中找就够了,也不用从网上找了。

  其实以上过程maven也帮我们做了,从maven中央仓库中下载过来的jar包会帮我们放到本地仓库中,这样我们使用jar包时,maven会先找我们的本地仓库,有的话直接导入,没有就先下到本地仓库,然后再导入到项目中。

  当然,maven的优点并不只在于方便导入jar包,开头就说了它是一个项目管理工具,它的目标是简化构建过程、提供统一的构建系统、提供优质的项目信息、提供最佳实践开发指南,这里只说下jar包相关,其它就不展开讲了,有兴趣可以去maven官网看看,里面有详细的说明。

  下面就来看看如何使用maven构建项目吧!

二、下载maven

  官网下载地址http://maven.apache.org/download.cgi

  点击apache-maven-3.6.3-bin.zip下载。注意,如果你在后面使用idea配置完maven后,出现一些无法解决的问题时,可以尝试降一下maven的版本,不使用最新版的maven

在这里插入图片描述

  下载完成后解压的到任意文件夹,这里我解压到了C:\Program Files目录下,记住你的目录,无需安装,接下来配置环境变量。

在这里插入图片描述

  右键此电脑–>属性–>高级系统设置–>环境变量

在这里插入图片描述

在这里插入图片描述

  点击新建,变量名为MAVEN_HOME,变量值为maven的解压目录

在这里插入图片描述

  双击Path,点击新建,输入%MAVEN_HOME%\bin,点击确定

在这里插入图片描述

  打开cmd命令窗口,输入mvn -v,显示版本信息则说明环境变量配置成功

在这里插入图片描述

三、修改maven配置文件

  打开maven目录中conf目录下的settings文件。

在这里插入图片描述

  之前说过,maven会将从中央仓库下载的jar包放到本地仓库中,而这个本地仓库其实就是maven帮我们建立的一个文件夹,目录为C:\Users\你的用户名\.m2\repository,这个路径是可以修改的。当然,你也可以选择不修改。

  打开settings文件后找到<localRepository>标签,默认是放在c盘用户目录下的,随着项目的增多,这个文件夹会越来越大,如果不想让它占用c盘的话,可以把这个目录改成其他盘。这里我在maven目录下新建了个repo的文件夹,用作本地仓库的路径。

在这里插入图片描述

  我们知道maven是从中央仓库下载jar包的,但是这个中央仓库的服务器是在国外的,下载会非常慢,好在阿里云做了一个国内的镜像仓库,所以我们还要把仓库的地址修改为阿里云的地址。

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

  找到<mirros>标签,将上面的内容复制到里面即可。

在这里插入图片描述
  接下来修改maven项目的默认jdk版本,找到<profiles>标签,将以下内容复制到里面即可。

<profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

在这里插入图片描述

四、在idea中配置maven

  当然,我们一般使用maven都是在ide中使用的,其实idea已经默认自带的有maven,但是当然没有我们自己配置的用着好用。打开设置,找到构建、执行、部署——>构建工具——>Maven(英文界面下为Build, Execution, Deployment——>Build Tools——>Maven,想使用中文界面的可以去插件里面下载中文插件),如下图。默认的是idea自带的maven,点击主目录的箭头,会自动识别到我们安装的maven,选中后记得点击下面的用户设置文件和本地储存库右面的覆盖,将配置文件和目录修改为我们自己设置的。

在这里插入图片描述

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

五、使用idea新建一个Maven项目

  点击新建项目,选择maven,选中从原型创建,选择maven的web项目模板

在这里插入图片描述

  填写项目名称,选择项目目录,至于下面的构建坐标是什么意思,idea已经给出了提示,待会看pom文件的时候再解释

在这里插入图片描述

  这里注意这些maven的设置,刚才我们已经在设置里面将默认的maven替换成了我们自己的,那这里应该已经是我们的maven选项,如果还是默认的,就手动修改一下。点击finish完成项目创建。

在这里插入图片描述

  注意控制台的提示信息,看到是用阿里云的maven仓库下载说明我们的配置文件生效了,第一次创建会下载一些东西,如果半天还没构建完成那就要看是不是从国外的仓库下载的

在这里插入图片描述

  看的下面信息说明项目构建成功,因为我这里不是第一次创建,所需要的东西已经下载好了,所以只用了5秒多

在这里插入图片描述

  下面一起来看一下maven的项目结构,可以发现main文件夹下只有webapp文件夹,我们还需要自己建几个文件夹,来存放java文件和配置文件,不过直接在main底下右键新建是不生效的,还需要标记一下

在这里插入图片描述

  按住ctrl+alt+shift+s点击文件——>项目结构,选择模块,在main文件夹下建立java,resources,test三个文件夹

在这里插入图片描述

  选中java文件夹,点击上方的标记为,源(也可以右键选择),表示该文件夹为存放java文件的文件夹,另外两个文件夹同理,标记完后右侧会出现提示,点击确定

在这里插入图片描述

  此时可以看到我们的文件夹已经变了颜色,除了上面这种方式,也可以直接在main下新建文件夹,右键标记。

在这里插入图片描述

六、maven的项目结构及pom文件

  项目目录说明如下图,可以看到好像和我们普通的web项目没有很大的区别,但是看着更加规范了,是的,maven的思想就是约定大于配置,它规定了项目的文件目录结构(不仅限于此),我们要使用它就必须遵守它的规定,一般情况下,它的默认规定会使我们的开发更加高效,springboot也是基于这种思想。

在这里插入图片描述

  具体的项目目录规定见下图,更多内容请访问官网查看

在这里插入图片描述

  上面我们已经搭好了一个基本的项目,那么接下来就看看maven项目的核心——pom.xml,开头说的很方便的导入jar包也是在这里配置的。以下内容参考官网的pom文件介绍,地址https://maven.apache.org/pom.html#What_is_the_POM,当然,我们起步阶段只需要了解其中一部分常用配置就行了。

<?xml version="1.0" encoding="UTF-8"?>
<!--maven约束-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- 模型版本 -->
  <modelVersion>4.0.0</modelVersion>

  <!-- 本项目坐标,即创建项目的时填写的内容 -->
  <!-- 公司或组织名称,一般是域名反写,如com.alibaba,org.springframework等 -->
  <groupId>org.example</groupId>
  <!-- 项目名称(id)。一个公司或组织下可以有多个项目,如org.springframework下有spring-core,spring-beans等 -->
  <artifactId>mavenproject</artifactId>
  <!-- 项目版本 -->
  <version>1.0-SNAPSHOT</version>

  <!-- 项目的打包方式,jar包或war包等 -->
  <packaging>war</packaging>
  <!-- 项目名称 -->
  <name>mavenproject Maven Webapp</name>
  <!-- 项目地址 -->
  <url>http://www.example.com</url>

  <!-- 定义属性,可以在其他地方通过${标签名}引用 -->
  <properties>
    <!--  项目编码  -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--  项目的jdk版本,这里默认的是1.7,可以手动改为你自己的jdk版本  -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <!--  以下是自定义的标签 -->
    <!--  例如我们下面要使用spring的一些依赖,为了便于管理spring的版本,可以在这里声明
       然后在version标签里通过${spring.version}引用 -->
    <spring.version>5.1.10.RELEASE</spring.version>
  </properties>
  <!-- 项目的依赖关系,导入jar包就是在这里导入 -->
  <dependencies>
    <!-- <dependencies>标签下可以有多个<dependency>标签,每一个都对应一个我们要引用的jar包  -->
    <!--  通过groupId,artifactId可以精确找到一个项目,通过version确定版本,下面以fastjson为例  -->
    <dependency>
      <!--   组id为阿里巴巴公司的域名反写(大部分都是这样,但也有例外,如下方的junit,就只有junit一个单词)   -->
      <groupId>com.alibaba</groupId>
      <!--   项目名,fastjson   -->
      <artifactId>fastjson</artifactId>
      <!--   我们要使用的版本   -->
      <version>1.1.23</version>
      <!--   作用域,不写默认为compile,说明无论编译、运行、测试、打包都会被包含进去。
      如下面的junit,作用域为test,就只会在测试的时候被需要,其他还有provided、runtime、system
      详情请参考—— https://www.cnblogs.com/kingsonfu/p/10342892.html -->
      <scope>compile</scope>
    </dependency>
    <!--  我们在<properties>标签里声明了spring的版本,那么在<version>里就可以直接引用,以后直接修改spring.version即可  -->
    <!--  spring-webmvc相关依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!--  spring事务依赖  -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <!-- 构建项目需要的信息 -->
  <build>
    <finalName>mavenproject</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

  以上简单介绍了pom文件的使用,我们刚开始使用会使用它导包就行了,以后项目复杂之后会进行更多的配置。那现在我们已经知道了使用maven导包只需要添加一个<dependency>标签,然后填写<groupId>、<artifactId>、<version>的内容就好了,接下来说说如何搜索maven的项目坐标,毕竟我们也不可能把那么多坐标全背下来。

  访问maven的仓库官网https://mvnrepository.com/,在搜索框里输入想要使用的jar包关键词即可,这里以spring为例,假如我们要使用spring context,点击它

在这里插入图片描述

  选择需要的版本,注意右侧Usages,数字越大说明被使用的越多,尽量选择使用广泛的版本。这里只是演示,就点最新版本了

在这里插入图片描述

  点进来就能看到maven的坐标了,将它复制到<dependencies>标签里就导进来了,不过这时候是红色的,正常情况下idea默认的是pom文件发生变化自动更新,如果没有自动下载,可以使用快捷键ctrl+shift+o刷新,下载完成后就会变成正常的黑色,打开左侧的External Libraries会发现已经下载并导入成功

在这里插入图片描述

在这里插入图片描述

  有时候如果官网进不去的,我们也可以使用阿里云的maven仓库搜索,都是一样的

在这里插入图片描述

  下载后的jar包是在External Libraries目录下的,可以在这里找到源码,而不是像普通项目那样直接放在了WEB-INF的lib目录下,它是运行的时候才会被打包到lib目录下的

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值