项目管理构建工具——Maven(基础篇)

在前面的内容中我们学习了JDBC并且接触到了jar包概念

在后面我们的实际开发中会接触到很多jar包,jar包的导入需要到互联网上进行就会导致操作繁琐

Maven在解决了jar包导入繁杂问题的同时,也提供了一套通用的管理和构建Java项目的一系列操作

Maven简介

Apache Maven是一个项目管理和构建工具,

它是基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建,报告和文档。

简单来说:Maven是专门用来管理和构建Java项目的工具

Maven的主要功能

  1. 提供了一套标准化的项目结构

Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全相同,所有IDE创建的Maven项目都可以通用

  1. 提供了一套标准化的构建流程(编译->测试->打包->发布)

Maven提供了一套简单的命令来完成项目构建

  1. 提供了一套依赖管理机制

原有流程如图:

Maven流程如图:

依赖管理其实就是管理你项目所依赖的第三方资源(jar包,插件)

Maven模型与介绍

具体模型如下:

Maven模型相关介绍:

  • 我们使用各类插件来进行生命周期的构建
  • 项目对象模型POM类似于我们的项目本体
  • pom.xml是我们的POM使用指南,我们从pom.xml获得相关指令并进行操作
  • 依赖管理模型Dependency主要负责jar包的导入

三种仓库介绍:

Maven仓库分为三种:本地仓库,远程仓库(私服),中央仓库。

  1. 本地仓库:

    自己计算机上的仓库,用来存储已经使用过的jar包

  2. 远程仓库:

    常常属于团队创建的仓库,属于公司财产

  3. 中央仓库:

    由Maven团队维护的私有仓库

当我们需要引入jar包时:

  • 引入顺序:本地仓库 -> 远程仓库 -> 中央仓库

  • 当我们前面的仓库无法满足,就向后面仓库进行查询,并且在找到之后,自动复制给前面仓库

Maven安装与配置

Maven安装流程如下:

  1. 官网下载Maven

    官网地址:Maven – Welcome to Apache Maven

  2. 配置环境

​ 在电脑高级设置中:

​ 系统变量配置:MAVEN_HOME 地址

​ PATH:%MAVEN_HOME%\bin

  1. 检查安装是否成功

​ 在cmd中进行检测:mvn -version

​ 如果有显示内容,即为成功安装Maven

Maven配置流程如下:

  1. 在Maven的下载地址中找到conf中的setting.xml并打开:
  2. 本地仓库设置:
找到如下注释:

<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
--> 在后面加上:
<localRepository> 本地仓库地址 </localRepository>
  1. 阿里云下载路径设置:
找到如下注释:

  <mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors> 在内部写入: <mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url> 阿里云下载地址(这里可能会更改,上网搜索即可) </url>
</mirror>

Maven基本使用

Maven的基本使用只包含五种:

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

我们常常在IDEA中使用,实际上cmd中也可以使用,但是不常用,所以这里不做解释,我们会在后续IDEA中进行操作

Maven生命周期

Maven生命周期概念:

  • 指一次构建过程经理了多少事件

Maven生命周期大致分为三套:

  1. clean:清理工作

  1. default:核心工作(编译,测试,打包,安装等)

  1. site:产生报告,发布站点等

同一生命周期内,执行后面的命令,前面的所有命令都会自动执行!

IDEA配置并使用Maven

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

  1. 选择IDEA的File中的Setting
  2. 搜索Maven
  3. 设置IDEA使用本地安装的Maven,并且修改配置文件路径

然后我们介绍一下IDEA创建Maven项目:

  1. 创建模块,选择Maven
  2. 填写模块名称,坐标信息,点击finish,即创建完成

最后我们了解一下导入Maven项目:

  1. 在我们的编程页面(Java程序)点击右侧Maven面板,点击+号
  2. 选中对应的pom.xml文件,双击即可
  3. 如果没有Maven面板,在 View->Appearance->Tool Window Bars 中进行调出

Maven坐标

我们在创建了IDEA项目之后,我们会得到一个pom.xml文件

在里面我们会看到如下的一些代码:

<?xml version="1.0" encoding="UTF-8"?>
<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> <!--
请注意这部分!!!!
这部分就属于Maven的坐标
-->
<groupId>org.example</groupId>
<artifactId>untitled</artifactId>
<version>1.0-SNAPSHOT</version> <properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties> <!-- 这部分用来导入新的jar包 --> <!-- dependencies属于jar包导入的整体包含部分 -->
<dependencies> <!-- dependency属于单个jar包导入的代码 -->
<dependency>
<groupId></groupId>
<artifactId></artifactId>
</dependency> </dependencies> </project>

坐标定义:

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

坐标主要组成成分:

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如com.tengxun)

  • artifactld:定义当前Maven项目名称(通常是模块名称)

  • version:定义当前项目版本号

依赖管理

依赖管理就是在pom.xml中的dependencies部分导入jar包

具体步骤如下:

  1. 在pom.xml中编写dependencies标签
  2. 在dependencies标签中,使用dependency引入坐标
  3. 定义坐标的groupId,artifactId,version
  4. 点击刷新按钮,使坐标生效

快捷键:Alt + Insert,选择Dependency,并选择相对应坐标即可

依赖范围

依赖管理的dependency中的属性不仅仅包括groupId,artifactId,version

还包含scope属性,用于控制jar包的作用范围:编译环境,测试环境,运行环境

我们通过表格的形式进行介绍:

依赖范围 编译classpath 测试classpath 运行classpath 例子
compile Y Y Y logback
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动包
system Y Y - 存储在本地的jar包
import

默认值:compile

结束语

好的,关于Maven的基本内容我们就介绍到这里!

附录

上述内容属于学习内容,主要学习于B站黑马程序员老陈的JavaWeb课程

这里附上链接:01-Maven概述_哔哩哔哩_bilibili

项目管理构建工具——Maven(基础篇)的更多相关文章

  1. 项目管理构建工具——Maven(高阶篇)

    项目管理构建工具--Maven(高阶篇) 我们在之前的文章中已经基本了解了Maven,但也仅仅只止步于了解 Maven作为我们项目管理构建的常用工具,具备许多功能,在这篇文章中我们来仔细介绍 分模块开 ...

  2. 项目管理及自动构建工具Maven

    项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/down ...

  3. 着重基础之—构建工具—Maven的依赖管理

    着重基础之—构建工具—Maven的依赖管理 项目构建利器Maven给我们开发人员带来了极大的便利,从繁琐的jar包管理中脱身的程序员终于可以有时间再进入另一个坑了. 我今天要给大家分享的内容是我在实际 ...

  4. Maven——基础篇

    Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...

  5. 构建工具maven

     构建工具maven  =UTF-8''Gradle Effective Implementation Guide.pdf: http://www.t00y.com/file/76854506 b ...

  6. Java项目工程化之项目构建工具Maven

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  7. 项目构建工具maven的使用方法

    最近在开发javaweb项目中有用到maven,以前并不是很了解,于是学习了一些相关内容,记之共享. 本篇内容在Windows环境下实施,JDK版本使用的1.7.0_79. 一.maven是什么? 简 ...

  8. 自动化构建工具maven

    Maven是目前最流行的自动化构建工具,对于生产环境下多框架.多模块整合开发有重要作用.Maven 是一款在大型项目开发过程中不可或缺的重要工具. 一.什么是构建? 构建并不是创建,创建一个工程并不等 ...

  9. gulp前端自动化构建工具新手入门篇

    很久没有更新博文了. 经过了一次年前吐血的赶项目,终于在年后回血了.趁着有空,新学到了一个前端自动化构建工具-gulp. 现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gul ...

随机推荐

  1. Spring Data JPA系列4——Spring声明式数事务处理与多数据源支持

    大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第四篇了,先来回顾下前面三篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...

  2. RPA 微信财务报销机器人 竹间智能

    1.首先通过微信对话机器人收集报销信息及内容 2.上传发票并进行OCR识别 3.收集相关的出差信息,支持对话中修改内容 4.完成信息收集后,后台RPA机器人执行报销操作,并发送确认邮件 5.收到邮件后 ...

  3. 关闭windows更新、设置自启动、提高开发机性能

    做Java开发的朋友都知道,每次开机启动一堆的软件和工具,包括未写完的文档,是非常花时间的,加上一桌面的快捷方式,往往不是那么容易直接找到.windows的自动更新往往在凌晨自动启动,导致很多软件被异 ...

  4. sql-关键词的大小写与注释

    是否区分大小写 和 注释 大小写 oracle 自带的sqlplus: mysql 客户端 : Navicat: 注释 oracle 自带的sqlplus: mysql 客户端 : 小节 oracle ...

  5. 避坑手册 | JAVA编码中容易踩坑的十大陷阱

    JAVA编码中存在一些容易被人忽视的陷阱,稍不留神可能就会跌落其中,给项目的稳定运行埋下隐患.此外,这些陷阱也是面试的时候面试官比较喜欢问的问题. 本文对这些陷阱进行了统一的整理,让你知道应该如何避免 ...

  6. Day04 HTML标记

    路径 ./ 同级目录 ./ 进入该目录名下 ../ 上一级目录 HTML标记 图片 <!-- 图片标记 src 图片的路径 width 设置图片宽度 height 设置图片高度 title 鼠标 ...

  7. halcon变量窗口的图像变量不显示,重启软件和电脑都没用

    有幸遇到halcon变量窗口的图像变量不显示,重启软件和电脑都没用这个沙雕问题,也是找了蛮久才发现解决办法特意记录一下. 这是正常情况下的窗口(左边)和图像变量不显示的窗口(右边): 解决方法: 鼠标 ...

  8. osx系统使用技巧 -- 虚拟机virtualbox

    p.p1 { margin: 0; font: 18px Menlo; color: rgba(255, 255, 255, 1); background-color: rgba(102, 130, ...

  9. @Async注解的坑,小心

    大家好,我是三友. 背景 前段时间,一个同事小姐姐跟我说她的项目起不来了,让我帮忙看一下,本着助人为乐的精神,这个忙肯定要去帮. 于是,我在她的控制台发现了如下的异常信息: Exception in ...

  10. Josephus问题(Ⅱ)

    题目描述 n个人排成一圈,按顺时针方向依次编号1,2,3-n.从编号为1的人开始顺时针"一二"报数,报到2的人退出圈子.这样不断循环下去,圈子里的人将不断减少.最终一定会剩下一个人 ...