pom.xml文件中的标签认识

周末不卷,研究下pom.xml里的内容。

一般一个pom.xml文件外面一个project包着以下的标签:
groupId
artifactId
repositories
properties
dependencies
build
plugins

下面分别来说说这几个标签的含义:
1、groupId:表示项目组的id
2、artifactId:表示工程的唯一id
3、version:表示工程的版本号
4、repositories:定义远程仓库的地址,本地仓库的地址一般是:~/.m2/repository,
一般首次编译的时候,如果本地仓库没有依赖的jar包或者插件,会去远程仓库下载到本地仓库,第二次运行的时候就不需要重新下载了。

5、properties: 用于统一管理所依赖的jar包的版本,一般在dependency中的版本中调用。
6、dependencies:用于管理项目所依赖的jar,也会固定带有版本信息,包括其 groupId、artifactId 和 version 等信息。其中的版本也可以调用上面properties所定义的版本。
在这里插入图片描述
当然,第一个jar包com.google.guava:guava:12.0.1也可以直接给固定版本。
在这里插入图片描述
比如项目这里依赖的flink-streaming-java所需要版本在上面的中定义。
在maven仓库中存在该jar包
在这里插入图片描述
我们可以在本地maven仓库找到该jar包
在这里插入图片描述
一般本地maven库中的所有jar包都是挂在intelli j这里:
在这里插入图片描述
7、build:定义项目的构建配置
8、plugins:在build里面,定义项目所需的插件,包括其 groupId、artifactId 和 version 等(每个Jar包或者是插件都具备这几个基本的)信息。如果这里没有定义插件的配置信息,那么 Maven 会使用默认的构建生命周期插件来执行构建过程。

常见的maven插件如下:

在这里插入图片描述
这里定义了项目所需插件:maven-assembly-plugin, 绑定到打包环节。
在这里插入图片描述
下面介绍下assembly.xml里面的标签:
id
formats
includeBaseDirectory
fileSets
files
dependencySets

1、id:表示标识符,添加到生成文件名称的后缀符
2、formats:表示支持的打包格式
3、includeBaseDirectory:默认为true。指定打的包是否包含打包层目录(比如finalName是prefix,当值为true,所有文件被放在包内的prefix目录下,否则直接放在包的根目录下。
4、fileSets:管理一组文件的存放位置
5、files:可以指定目的文件名到指定目录
在这里插入图片描述
6、dependencySets :用来定制工程依赖 jar 包的打包方式

总结:
以上,描述了一个maven项目pom文件里的标签,以及每个标签的含义。我发现这跟python中的pip有点类似,但是本地python所依赖的包,都需要手动安装(pip install)。pom里定义了项目所依赖的jar包,以及插件,在编译的时候会自动的从远程仓库中下载到本地仓库(~/.m2/repository)。本文使用的是assembly插件进行打包。

关于java打包的几种方式的总结,改天再出一篇文章总结下。

https://blog.csdn.net/qq_44732146/article/details/128936121
https://www.jb51.net/program/2983422q7.htm
https://blog.51cto.com/u_15896157/5896000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600672.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

387XX固态功率放大器系列 分频段可实现9kHz~110GHz

387XX固态功率放大器系列 分频段可实现9kHz~110GHz 387XX固态功率放大器系列分频段可实现9kHz~110GHz的频率范围内输入信号的功率放大。具有增益可调、功率稳幅及远程控制等功能。宽频带、高增益及大功率是它的特点。 简述 387XX固态功率放大器系列由…

蓝桥杯第六届c++大学B组详解

前言: 看了很多博客以及视频讲解,感觉都不是很清楚,比较模棱两可,所以干脆自己一边想,一边写博客,也可帮助到其他人,都是根据自己的逻辑来尽量清楚简单的讲清楚题目,喜欢的不要吝啬三…

Qt实现Kermit协议(四)

3 实现 3.3 KermitRecvFile 该模块实现了Kermit接收文件功能。 序列图如下: 3.3.1 KermitRecvFile定义 class QSerialPort; class KermitRecvFile : public QObject, public Kermit {Q_OBJECT public:explicit KermitRecvFile(QSerialPort *serial, QObject *…

ezuikit.js加载flv格式链接报错问题

报错信息如下: 解决方法: 添加依赖 "flv.js": "^1.5.0", 在main.js或app.ts里面 加上 window.flvjs require(flv.js/dist/flv); 就可以成功运行了

消息队列MQ(面试题:为什么使用MQ)

一、什么是mq? MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,解耦。 二、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq RabbitMQ: One broker …

flask接口返回文本、json、图片格式

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍&…

计算机的发展趋势

本文 我们来说计算机的发展趋势 目前来讲 计算机是朝着 巨型化 微型化 网络化 智能化发展 巨型化 指功能巨型化 是指其高速运算、大存储容量和强功能的巨型计算机。其运算能力一般在每秒百亿次以上、内存容量在几百兆字节以上。 主要用于航空航天、军事、气象、人工智能、生…

数据结构——二叉树——二叉搜索树(Binary Search Tree, BST)

目录 一、98. 验证二叉搜索树 二、96. 不同的二叉搜索树 三、538. 把二叉搜索树转换为累加树 二叉搜索树:对于二叉搜索树中的每个结点,其左子结点的值小于该结点的值,而右子结点的值大于该结点的值 一、98. 验证二叉搜索树 给你一个二叉树的…

基于单片机16路多路抢答器仿真系统设计

**单片机设计介绍,基于单片机16路多路抢答器仿真系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机16路多路抢答器仿真系统的设计概要主要涵盖硬件设计、软件编程以及功能实现等方面。以下是针对该设计的详细概…

RA8900CE计时芯片介绍及开发方案

计时芯片 就是一个需要连接32.768k晶振的RTC芯片 规格书阅读 首先我们先读懂这个芯片是怎么用的。 引脚表 封装是这样的,一共10个引脚。 基本上一看这个引脚表就知道大概。 T1和T2是工厂测试的,不用管。 SCL和SDA是IIC通讯用的。 FOUT和FOE就是链…

GD32F470_GP2Y0A02YK0F 红外激光测距传感器 避障测距20-150cm模块移植

2.4 红外测距传感器 GP2Y0A02YKOF是夏普的一款距离测量传感器模块。它由PSD(position sensitive detector)和IRED(infrared emitting diode)以及信号处理电路三部分组成。由于采用了三角测量方法,被测物体的材质、环境温度以及测量时间都不会影响传感器的测量精度。传感器输出电…

线段树和树状数组

实战演练 1.【模板】树状数【模板】树状数组1 输入: 5 5 1 5 4 2 3 2 2 4 1 2 3 2 2 3 4 1 1 5 1 2 1 4 注意:只修改一个数(单点修改),却要输出一个区间的值(区间查询)!&#xff…