项目管理构建工具——Maven(基础篇)
项目管理构建工具——Maven(基础篇)
在前面的内容中我们学习了JDBC并且接触到了jar包概念
在后面我们的实际开发中会接触到很多jar包,jar包的导入需要到互联网上进行就会导致操作繁琐
Maven在解决了jar包导入繁杂问题的同时,也提供了一套通用的管理和构建Java项目的一系列操作
Maven简介
Apache Maven是一个项目管理和构建工具,
它是基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建,报告和文档。
简单来说:Maven是专门用来管理和构建Java项目的工具
Maven的主要功能
- 提供了一套标准化的项目结构
Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全相同,所有IDE创建的Maven项目都可以通用
- 提供了一套标准化的构建流程(编译->测试->打包->发布)
Maven提供了一套简单的命令来完成项目构建
- 提供了一套依赖管理机制
原有流程如图:
Maven流程如图:
依赖管理其实就是管理你项目所依赖的第三方资源(jar包,插件)
Maven模型与介绍
具体模型如下:
Maven模型相关介绍:
- 我们使用各类插件来进行生命周期的构建
- 项目对象模型POM类似于我们的项目本体
- pom.xml是我们的POM使用指南,我们从pom.xml获得相关指令并进行操作
- 依赖管理模型Dependency主要负责jar包的导入
三种仓库介绍:
Maven仓库分为三种:本地仓库,远程仓库(私服),中央仓库。
本地仓库:
自己计算机上的仓库,用来存储已经使用过的jar包
远程仓库:
常常属于团队创建的仓库,属于公司财产
中央仓库:
由Maven团队维护的私有仓库
当我们需要引入jar包时:
引入顺序:本地仓库 -> 远程仓库 -> 中央仓库
当我们前面的仓库无法满足,就向后面仓库进行查询,并且在找到之后,自动复制给前面仓库
Maven安装与配置
Maven安装流程如下:
官网下载Maven
配置环境
在电脑高级设置中:
系统变量配置:MAVEN_HOME 地址
PATH:%MAVEN_HOME%\bin
- 检查安装是否成功
在cmd中进行检测:mvn -version
如果有显示内容,即为成功安装Maven
Maven配置流程如下:
- 在Maven的下载地址中找到conf中的setting.xml并打开:
- 本地仓库设置:
找到如下注释:
<!-- 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>
- 阿里云下载路径设置:
找到如下注释:
<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生命周期大致分为三套:
- clean:清理工作
- default:核心工作(编译,测试,打包,安装等)
- site:产生报告,发布站点等
同一生命周期内,执行后面的命令,前面的所有命令都会自动执行!
IDEA配置并使用Maven
首先我们需要在IDEA中配置Maven环境:
- 选择IDEA的File中的Setting
- 搜索Maven
- 设置IDEA使用本地安装的Maven,并且修改配置文件路径
然后我们介绍一下IDEA创建Maven项目:
- 创建模块,选择Maven
- 填写模块名称,坐标信息,点击finish,即创建完成
最后我们了解一下导入Maven项目:
- 在我们的编程页面(Java程序)点击右侧Maven面板,点击+号
- 选中对应的pom.xml文件,双击即可
- 如果没有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包
具体步骤如下:
- 在pom.xml中编写dependencies标签
- 在dependencies标签中,使用dependency引入坐标
- 定义坐标的groupId,artifactId,version
- 点击刷新按钮,使坐标生效
快捷键: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(基础篇)的更多相关文章
- 项目管理构建工具——Maven(高阶篇)
项目管理构建工具--Maven(高阶篇) 我们在之前的文章中已经基本了解了Maven,但也仅仅只止步于了解 Maven作为我们项目管理构建的常用工具,具备许多功能,在这篇文章中我们来仔细介绍 分模块开 ...
- 项目管理及自动构建工具Maven
项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/down ...
- 着重基础之—构建工具—Maven的依赖管理
着重基础之—构建工具—Maven的依赖管理 项目构建利器Maven给我们开发人员带来了极大的便利,从繁琐的jar包管理中脱身的程序员终于可以有时间再进入另一个坑了. 我今天要给大家分享的内容是我在实际 ...
- Maven——基础篇
Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...
- 构建工具maven
构建工具maven =UTF-8''Gradle Effective Implementation Guide.pdf: http://www.t00y.com/file/76854506 b ...
- Java项目工程化之项目构建工具Maven
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- 项目构建工具maven的使用方法
最近在开发javaweb项目中有用到maven,以前并不是很了解,于是学习了一些相关内容,记之共享. 本篇内容在Windows环境下实施,JDK版本使用的1.7.0_79. 一.maven是什么? 简 ...
- 自动化构建工具maven
Maven是目前最流行的自动化构建工具,对于生产环境下多框架.多模块整合开发有重要作用.Maven 是一款在大型项目开发过程中不可或缺的重要工具. 一.什么是构建? 构建并不是创建,创建一个工程并不等 ...
- gulp前端自动化构建工具新手入门篇
很久没有更新博文了. 经过了一次年前吐血的赶项目,终于在年后回血了.趁着有空,新学到了一个前端自动化构建工具-gulp. 现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gul ...
随机推荐
- 记一次beego通过go get命令后找不到bee.exe的坑
学习goweb开发,gin是个轻量级的框架.如果想要一个类如aspnetmvc帮我们搭建好了的goweb框架,beego值得去学习.否则gin下面需要动手构建好多代码.新手还是先学现成的节约时间成本. ...
- 全国土壤阳离子交换量CEC空间分布数据
数据下载链接:百度云下载链接 土壤阳离子交换量,简称CEC,是指土壤胶体所能吸附各种阳离子的总量.土壤阳离子交换量 cation exchange capacity 即CEC 是指土壤胶体所能吸附各 ...
- 总结下对我对于CSS中BFC的认知
首先第一个,什么是BFC? BFC的全称叫Block Formatting Context (块级格式化上下文)BFC是css中隐含属性,开启BFC后元素会变成一个独立的布局环. 简单来说,它 ...
- Neo4j应用
CQL函数 1. 字符串函数 功能 描述 UPPER 将所有字母改为大写 LOWER 将所有字母改为小写 SUBSTRING 将获取指定范围的子字符串 REPLACE 替换一个字符串的子字符串 mat ...
- win10搜索功能用不了
这玩意搞了我今天,直接裂开!系统更新根本解决不了 好在查了相关资料才知道,原来微软在 Win10 的更新中,将搜索功能和语音助手 Cortana 进行了拆分,搜索成了一个独立的功能,还好有外媒发现问题 ...
- 不同云服务器下,ubuntu下开k3s集群
首先先感谢老哥的文章:h构建多云环境下的K3S集群,但是我尝试在centos 8.2上面前面一直执行报错 并且安装glibc 2.17时还会报错make版本太低,所以直接放弃centos,投入ubun ...
- 20220723-Mac上使用IntelliJ IDEA
目录 IDEA快捷键 IDEA模板 常用模板快捷键 个人随笔 软件:IntelliJ IDEA 电脑:Mac IDEA快捷键 打开/关闭 项目视图 快捷键:⌘ + 1 运行项目 快捷键:⌃ + ⇧ + ...
- CF Global Round 21 题解 (CDEG)
C 把 \(a,b\) 全拆开然后比较即可(因为分裂和合并是互逆的) 注意开 long long . using namespace std; typedef long long ll; typede ...
- LeetCode题解-20.有效的括号
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 示例 ...
- C#反射跟特性
一.什么是反射? 了解反射之前我们必须知道一个概念--元数据.有关程序和程序类型的信息叫做元数据,通俗的解释就是类里面的方法.属性.字段等. 而程序在运行的时候去查看其它程序集的行为就叫做反射.在我们 ...