Maven最佳实践

news/2024/11/14 7:24:03/

文章目录


1.摘要
本文主要介绍Maven使用,作为Maven使用手册来记录。

2.介绍
Maven是项目管理工具,将项目开发和管理过程抽象成一个项目对象模型,使用pom.xml 文件进行依赖管理和项目构建。
Maven 中pom.xml 是根据坐标信息来定位资源的位置,资源来自于仓库
仓库:用以存储资源,包含各种Jar包。

分类:
本地仓库:本地程序上电脑存储资源的仓库,连接远程仓库获取资源。
远程仓库分为中央仓库和私服。
中央仓库:Maven团队维护,存储所有资源的仓库
私服: 部门/公司内部存储资源的仓库,从中央仓库获取资源。
私服存在的意义:1.保护知识产权。2.仓库jar包安全保密,仅对内共享使用。

其中本地仓库可以自定义修改存储路径:默认是

${user.home}/.m2/repository

为了提升从中央仓库获取资源的速度通常使用阿里云镜像作为中央仓库。修改Maven 中setting.xml文件配置中央仓库镜像。

在这里插入图片描述

坐标信息概念
组织ID、项目ID、版本号缺一不可。

java"><dependency><groupId>com.baomidou</groupId> // 组织id<artifactId>mybatis-plus-generator</artifactId> //项目id<version>3.5.1</version> //版本号</dependency>

Maven项目构建命令:

java"> mvn complie  //编译mvn clean  //清理mvn test  // 测试mvn package // 打包mvn install  // 安装至本地仓库

Maven依赖冲突解决方案:
在这里插入图片描述

依赖范围

在这里插入图片描述
可选依赖
在这里插入图片描述
生命周期

在这里插入图片描述

工程 聚合,工程pom文件打包类型为**pom** 且使用**modules**标签定义子模块。示例如下。
在这里插入图片描述
父工程声明定义
在这里插入图片描述
使用dependencyManagement 标签包裹的 依赖,子工程可以直接引用不需要写版本号
在这里插入图片描述
跳过测试安装命令: mvn install -D skipTests

测试指定目录下java文件

里插入图片描述](https://i-blog.csdnimg.cn/direct/cf71272a56d04158946b2a55c8a8ef79.png)
在这里插入图片描述
工作中都是访问公司内部搭建的私服来获取jar包资源,
在这里插入图片描述

在这里插入图片描述
mavensetting.xml 补充仓库组镜像。
在这里插入图片描述

pom文件配置发布信息,执行mvn deploy即可同步将jar包发布至私服仓库中。
在这里插入图片描述


http://www.ppmy.cn/news/1546394.html

相关文章

什么是网络安全CTF有何意义?该如何入门?

什么是网络安全CTF?有何意义 &#xff1f;该如何入门 &#xff1f; 什么是网络安全CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。它起源于1996年DEFCON&#xff0c;以代替之前通过互相发起真实攻击进行技术比拼的方式。发展至今&#xff…

11.11机器学习_介绍和定义

一、 机器学习介绍与定义 1. 机器学习定义 机器学习&#xff08;Machine Learning&#xff09;本质上就是让计算机自己在数据中学习规律&#xff0c;并根据所得到的规律对未来数据进行预测。 机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习&#xff08;Deep…

单体架构 IM 系统之长轮询方案设计

在上一篇技术短文&#xff08;单体架构 IM 系统之核心业务功能实现&#xff09;中&#xff0c;我们讨论了 “信箱模型” 在单体架构 IM 系统中的应用&#xff0c;“信箱模型” 见下图。 客户端 A 将 “信件” 投入到客户端 B 的 “信箱” 中&#xff0c;然后客户端 B 去自己的 …

链表循环及差集相关算法题|判断循环双链表是否对称|两循环单链表合并成循环链表|使双向循环链表有序|单循环链表改双向循环链表|两链表的差集(C)

判断循环双链表是否对称 设计一个算法用于判断带头节点的循环双链表是否对称 算法思想 让left从左向右扫描&#xff0c;right从右向左扫描&#xff0c;直到它们指向同一个节点&#xff1a;left right 或相邻left->next right&#xff0c;或right->prev left&#x…

【AI技术】PaddleSpeech部署方案

【AI技术】PaddleSpeech部署方案 技术介绍优点缺点 部署基础环境的搭建分步详解国内镜像源切换所需环境1 g所需环境2 vim所需环境3 cuda所需环境4 cudnn所需环境5 ssl源码拉取PaddleSpeech环境安装 部署文件分享DockerHub 技术介绍 PaddleSpeech是飞浆平台的一款TTS框架。 优…

flink sql同步mysql数据表到mysql

1. 关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld systemctl status firewalld2.安装java8 yum list java-1.8* yum install java-1.8.0-openjdk* -yjava -version3.下载和部署mysql yum -y install wget wget https://dev.mysql.com/get/Down…

linux-c 使用c语言操作sqlite3数据库-1

一、练习目标 1、目标 1、使用sqlite3_exec执行查询语句&#xff0c;并将查询结果insert到链表中&#xff0c;最后打印链表的内容&#xff1b; 2、使用sqlite3_get_table执行查询语句&#xff0c;并以key&#xff1a;value的方式&#xff0c;打印查询结果。 2、环境准备 2.1、…

嵌入式采集网关(golang版本)

为了一次编写到处运行&#xff0c;使用纯GO编写&#xff0c;排除CGO&#xff0c;解决在嵌入式中交叉编译难问题 硬件设备&#xff1a;移远EC200A-CN LTE Cat 4 无线通信模块&#xff0c;搭载openwrt操作系统&#xff0c;90M内存