前言:
不论是mac平台的idea还是win平台的idea,都有自带的maven。
如果不想使用idea自带的maven可以自己去官网下载对应版本的maven。
下面我将重点介绍自己去网上下载的maven的环境配置和具体使用以及让大家了解idea自带的maven(只做了解)。

一.了解idea中自带的maven

如下图点击

idea自带的maven地址在哪 用idea自带的maven_maven


之后进入下图界面,接着点击

idea自带的maven地址在哪 用idea自带的maven_maven_02


可以看到我的电脑上面有4个maven,其中最后一个/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3与第三个Bundled(Maven3)是同一个,只不过最后一个是其全路径。

进入该路径下查看:

idea自带的maven地址在哪 用idea自带的maven_mac_03


idea自带的maven地址在哪 用idea自带的maven_mac_04


可以看到我的idea中自带有两个版本的maven,我朋友的win平台电脑上idea自带的只有一个版本的maven。

二.网上下载好maven后的环境配置:

如果想用自己下载的maven,文件下载完成后,需要完成以下步骤:

  1. 打开终端 ,输入vim ~/.bash_profile
  2. 进入编辑模式,在文件末尾加上该片段:
    export MAVEN_HOME=/Users/yushiwen/apache-maven-3.5.2 上述片段解读:等于号后面的是下载好的maven的全路径,=后面写上自己maven的全路径
    export PATH=$PATH:$MAVEN_HOME/bin 上述片段解读:这个是固定的,不需要改
    写好后如下:
  3. idea自带的maven地址在哪 用idea自带的maven_intellij idea_05

  4. 写好后退出,输入source ~/.bash_profile命令使刚才的文件配置生效
  5. 输入 mvn -v 查看 Maven 否安装成功
    如下图说明生效:
  6. idea自带的maven地址在哪 用idea自带的maven_java_06

三.设置maven下载的jar包到某个指定文件

  1. 点击打开我们下载的maven文件,打开conf文件下的settings.xml,如下:
  2. idea自带的maven地址在哪 用idea自带的maven_idea自带的maven地址在哪_07

  3. 我使用的vscode打开的settings.xml,打开后在如下片段加入如下代码:
    第55行入如下代码:<localRepository>/Users/yushiwen/apache-maven-3.5.2/repository</localRepository> 代码段解读:
    /Users/yushiwen/apache-maven-3.5.2是其下载的maven的全路径,后面的repository是之后自动下载需要的jar包所放置的地方。
    代码添加完成后如下:
  4. idea自带的maven地址在哪 用idea自带的maven_maven_08

  5. 因为下载jar包地址不太稳定,我们可以换成国内的镜像地址,settings.xml更改如下:
    在<mirrors></mirrors>之间加入如下代码段:
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
 
  <mirror>
    <id>uk</id>  
    <mirrorOf>central</mirrorOf>  
    <name>Human Readable Name for this Mirror.</name>  
    <url>http://uk.maven.org/maven2/</url>
  </mirror>
 
   <mirror>
    <id>CN</id>
    <name>OSChina Central</name>
    <url>http://maven.oschina.net/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
 
  <mirror>
    <id>nexus</id>
    <name>internal nexus repository</name>
    <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
    <url>http://repo.maven.apache.org/maven2</url>
    <mirrorOf>central</mirrorOf>
  </mirror>

更改后如下:

idea自带的maven地址在哪 用idea自带的maven_idea自带的maven地址在哪_09

四.下载jar包到本地仓库(下载到刚才的repository目录下)

  1. 终端输入mvn help:system 出现以下信息证明下载成功:
  2. idea自带的maven地址在哪 用idea自带的maven_maven_10


五.在idea选择使用指定的maven

  1. 点击IntelliJ IDEA,选择Preferences
  2. 进入如下页面,安装提示点击:

idea自带的maven地址在哪 用idea自带的maven_mac_11

六.创建maven,输出数据库的哈希地址。

  1. 新建model,选择maven,勾选,选择webapp,注意有两个webapp,创建时需要看仔细一点。
  2. 一路点击next

  3. 创建时勾选create from archetype:
  4. 创建时不勾选:
  5. 勾选不勾选相互结合(就是创建文件夹,拖入文件到其中,具体过程省略):
  6. 在pom.xml中标签内添加jdbc的依赖坐标:
<!--mysql驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.12</version>
    </dependency>
  1. main函数及输出:


    说明:
    可以看到在pom.xml文件中添加相应的依赖坐标,就可以在不自己导入jar包的情况下,使用mysql连接驱动,实际上这个连接驱动jar包在本地仓库中(repository目录下)。

7.pom.xml文件说明:

  1. 坐标说明:
<!--依赖坐标-->
  <dependencies>

    <!--mysql驱动包-->
    <dependency>
      <!--组织名-->
      <groupId>mysql</groupId>
      <!--项目名-->
      <artifactId>mysql-connector-java</artifactId>
      <!--版本-->
      <version>8.0.12</version>
    </dependency>

    <!--@Test测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <!--范围-->
      <scope>test</scope>
    </dependency>
  </dependencies>
  1. 依赖范围:
    A 依赖 B,需要在 A 的 pom.xml 文件中添加 B 的坐标,添加坐标时需要指定依赖范围,依赖范围包
    括:

compile:此范围为默认依赖范围。作用在: 编译、测试、运行

provided:只有在当 JDK 或者一个容器已提供该依赖之后才使用,在编译和测试时需要,在运行时不需要。
比如: tomcat 容器包含servlet api,但是在编译和测试时需要,运行时使用tomcat内置的servlet即可。

runtime:在运行和测试系统的时候需要,但在编译的时候不需要。
比如:jdbc的驱动包。

test:在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,
比如:junit。

system:system依赖不推荐使用。

依赖范围

对于编译

classpath有效

对于测试

classpath有效

对于运行

classpath有效

例子

compile

Yes

Yes

Yes

spring-core

test

-

Yes

-

Junit

provided

Yes

Yes

-

Servlet-api

runtime

-

Yes

Yes

JDBC驱动

system

Yes

Yes

-

本地的,Maven仓库之外的类库

  1. 总结:
    默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
    servlet-api 、jsp-api ------- provided (编译、测试有效,运行时无效,防止和 tomcat 下 jar 冲突)
    jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )
    junit ----- test (测试有效)
    依赖范围由强到弱的顺序是:compile>provided>runtime>test
    不同的jar包依赖使用时范围是不同的,需要自己在实际开发过程中去慢慢积累经验。