Maven

Maven

Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为"专家,内行",它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。

Maven的作用

依赖管理

方便快速管理依赖资源,避免版本冲突,有了Maven,我们就不用再手动导入Jar包了,我们只需要在配置文件当中,简单描述一下项目所需要的依赖信息即可,Maven会自动联网下载。

统一项目结构

统一的结构,如图

项目构建

可以跨平台,自动化项目构建:我们可以通过Maven可以快速的完成编译、测试、打包、发布等流程,存在生命周期。

仓库

用于存储资源,管理各种jar包,仓库分为三种,本地和中央仓库(https://repo1.maven,org/maven2/),还有私服(公司内部搭建的仓库)

Maven的安装

官网下载

复制代码
http://maven.apache.org/download.cgi

解压之后

  1. bin:存放了 maven 的命令
  2. boot:存放了一些 maven 本身的引导程序,如类加载器等
  3. conf:存放了 maven 的一些配置文件,如 setting.xml 文件
  4. lib:存放了 maven 本身运行所需的一些 jar 包

配置 MAVEN_HOME ,变量值就是你的 maven 安装的路径(bin 目录之前一级目录)

将MAVEN_HOME 添加到Path系统变量

输入 mvn --v命令

修改本地仓库路径,要不然会在c盘,直接在路径下新建本地仓库文件夹

<mirror>

<id>alimaven</id>

<mirrorOf>central</mirrorOf>

<name>aliyun maven</name>

<url>https://maven.aliyun.com/nexus/content/repositories/central/\</url>

</mirror>

IDEA集成Maven

命令方式

  1. 创建Web应用:

    复制代码
    mvn archetype:generate -DgroupId=com.fxust.codelab -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp

    这条命令会基于maven-archetype-webapp模板生成一个Web应用程序的骨架。groupId代表组织或公司标识,通常采用包名的形式;artifactId是你项目的唯一标识符,在这个例子中,你的Web应用被命名为myweb。执行完这条命令后,你可以将生成的项目直接导入到IntelliJ IDEA中进行开发。

  2. 创建普通Java工程:

    复制代码
    mvn archetype:generate -DgroupId=com.fxust -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart

    这里使用的maven-archetype-quickstart是一个简单的Java项目模板。与之前提到的Web应用不同,这个模板主要用于生成一个基础的Java项目结构,适合用来编写不依赖于Servlet API等Web技术的纯Java应用程序。在这个命令中,groupId为com.fxust,artifactId为demo,意味着你将创建一个名为demo的基础Java项目。

2

坐标的概念

在maven中坐标就是为了定位一个唯一确定的jar包。

maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范,拥有了统一规范,就可以把查找工作交给机器

Maven坐标主要组成(GAV) - 确定一个jar在互联网位置

|----------------|--------------------------------------------------------|
| 标签 | 含义 |
| groupId | 定义当前Maven组织名称,通常是公司名 |
| artifactId | 定义实际项目名称 |
| version | 定义当前项目的当前版本 |
| packaging | 打包类型 jar:执行 package 会打成 jar 包 war:执行 package 会打成 war 包 |
| dependency | 使用 <dependency> 声明一个依赖后,Maven就会自动下载这个依赖包 |

标签 含义
dependencies 表示依赖关系
dependency 使用 <dependency> 声明一个依赖后,Maven就会自动下载这个依赖包

添加依赖需要指定依赖 jar 包的坐标,但是很多情况我们是不知道 jar 包的的坐标,可以通过如网址查询https://mvnrepository.com/

相关推荐
秋名RG12 小时前
一条 SQL 语句在 MySQL 中的执行过程详解
数据库·sql·mysql
Canmag 兴隆磁性12 小时前
钕铁硼磁片取向方向检测自动化方案:从人工目检到流水线在线分选的工程实践
运维·数据库·自动化·工业自动化·钕铁硼·自动化检测·磁材料
yangmu320312 小时前
安全审批与日志审计:从“谁批准”到“谁执行”的全链路闭环
数据库
樱花落木兰12 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程
R²AIN SUITE12 小时前
多云或私有云环境怎么选项目管理工具?RainSuite等5种产品的8项部署验证
服务器·网络·数据库
隔振降噪研究员13 小时前
裁断机一响,楼板为什么会跟着抖?
大数据·linux·数据库·人工智能
wtblszn13 小时前
凹版印刷机智慧运维物联网系统方案
java·运维·物联网
Nuanyt13 小时前
LeetCode Hot 100 链表专题(四)· 3 题(Java)
java·算法·leetcode·链表·双指针
zhongben_keji13 小时前
本地生活 APP 开发:城市 × 品类 × 履约形态的三维网格与三套账
java·大数据·生活
软件派14 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法