Maven介绍、环境配置与IDEA项目创建

质量保
• 阅读 840

1. Maven简介

Maven是专门用于管理和构建Java项目的工具,官网http://maven.apache.org/ 。它的主要功能有:

1.1 标准化的项目结构

每一个开发工具(IDE)都有自己不同的项目结构,它们互相之间不通用。比如我再eclipse中创建的目录,无法在idea中进行使用,这就造成了很大的不方便。

Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样,所以IDE创建的Maven项目可以通用。
Maven介绍、环境配置与IDEA项目创建

1.2 标准化的构建流程(编译,测试,打包,发布……)

Maven介绍、环境配置与IDEA项目创建

如上图所示我们开发了一套系统,代码需要进行编译、测试、打包、发布,这些操作如果需要反复进行就显得特别麻烦,而Maven提供了一套简单的命令来完成项目构建。

1.3 方便的依赖管理机制

依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。比如你需要JDBC和Druid的话,就要去网上下载对应的依赖包,复制到项目中,还要将jar包加入工作环境这一系列的操作。如下图所示
Maven介绍、环境配置与IDEA项目创建

而Maven使用标准的 ==坐标== 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。

Maven介绍、环境配置与IDEA项目创建

如上图右边所示就是mysql驱动包的坐标,在项目中只需要写这段配置,其他都不需要我们担心,Maven都帮我们进行操作了。是不是简单了不少??

2. 仓库

我们创建Maven项目,在项目中使用坐标来指定项目的依赖,那么依赖的jar包到底存储在什么地方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。

仓库分类:

  • 本地仓库:自己本地计算机上的一个目录
  • 中央仓库:由Maven团队维护的全球唯一的仓库。基本上你能想到的jar包,这里都有

  • 远程仓库(私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:

  • 如果有,则在项目直接引用;
  • 如果没有,则去中央仓库中下载对应的jar包到本地仓库。

Maven介绍、环境配置与IDEA项目创建

当然如果搭建有远程仓库,则jar包的查找顺序则变为:

Maven介绍、环境配置与IDEA项目创建

3. Maven安装配置

3.1 下载安装包

解压 apache-maven-3.6.1.rar 既安装完成

Maven介绍、环境配置与IDEA项目创建

建议解压缩到没有中文、特殊字符的路径下。记住你的目录

解压缩后的目录结构如下:
Maven介绍、环境配置与IDEA项目创建

  • bin目录 : 存放的是可执行命令。mvn 命令重点关注。
  • conf目录 :存放Maven的配置文件。settings.xml 配置文件后期需要修改。
  • lib目录 :存放Maven依赖的jar包。Maven也是使用java开发的,所以它也依赖其他的jar包。

3.2 配置环境变量

Maven介绍、环境配置与IDEA项目创建

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

在系统变量处新建一个变量 MAVEN_HOME
Maven介绍、环境配置与IDEA项目创建

Path 中进行配置

Maven介绍、环境配置与IDEA项目创建

打开cmd进行验证,出现如图所示表示安装成功:
Maven介绍、环境配置与IDEA项目创建

3.3 配置本地仓库

修改 conf/settings.xml 中的 <localRepository> 为一个指定目录作为本地仓库,用来存储jar包。我的是:

Maven介绍、环境配置与IDEA项目创建

当然如果你不配置的话,会有一个默认本地仓库目录:
Maven介绍、环境配置与IDEA项目创建

3.4 配置阿里云私服

中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。

修改 conf/settings.xml 中的 <mirrors>标签,为其添加如下子标签

<mirror>  
    <id>alimaven</id>  
    <name>aliyun maven</name>  
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>          
</mirror>

Maven介绍、环境配置与IDEA项目创建

4. Maven常用命令

  • compile :编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

这不是我要详细讲的,具体参考其他资料

5. IDEA使用Maven

以后开发中我们肯定会在高级开发工具中使用Maven管理项目,而我们常用的高级开发工具是IDEA,所以接下来我们会讲解Maven在IDEA中的使用。

5.1 IDEA中配置Maven环境

我们需要先在IDEA中配置Maven环境:

  • 选择 IDEA中 File --> Settings

Maven介绍、环境配置与IDEA项目创建

  • 搜索Maven

Maven介绍、环境配置与IDEA项目创建

  • 设置 IDEA 使用本地安装的 Maven,并修改配置文件路径
    Maven介绍、环境配置与IDEA项目创建

5.2 Maven 坐标

创建Maven项目要用到Maven坐标,所以先讲一下什么是Maven坐标。

什么是Maven坐标?

  • Maven 中的坐标是==资源的唯一标识==
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号

如下图就是使用坐标表示一个项目:

Maven介绍、环境配置与IDEA项目创建

==注意:==

  • 上面所说的资源可以是插件、依赖、当前项目。
  • 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

5.3 IDEA 创建 Maven项目

  • 新建模块
  • Maven介绍、环境配置与IDEA项目创建
  • 创建好的项目目录结构如下:

    Maven介绍、环境配置与IDEA项目创建

  • 编写 HelloWorld,并运行
    Maven介绍、环境配置与IDEA项目创建

6. 总结

部分内容来自 B站黑马程序员课程ppt

老师讲得很好,有兴趣的可以听听。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0