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

相关推荐

  1. HTML文本标签:微观排版艺术

    2024-04-08 18:04:03       26 阅读
  2. htmldiv标签

    2024-04-08 18:04:03       39 阅读
  3. 【无标题】html使用div标签坏处

    2024-04-08 18:04:03       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-08 18:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-08 18:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-08 18:04:03       82 阅读
  4. Python语言-面向对象

    2024-04-08 18:04:03       91 阅读

热门阅读

  1. 移动应用开发实验室三面题分析

    2024-04-08 18:04:03       20 阅读
  2. Qt 容器类整理与使用

    2024-04-08 18:04:03       26 阅读
  3. 03独立按键左移、右移、加一、清零

    2024-04-08 18:04:03       31 阅读
  4. linux中常用的查看日志命令

    2024-04-08 18:04:03       32 阅读
  5. MySQL的XID

    2024-04-08 18:04:03       40 阅读
  6. QT6 Android设置程序图标及名称

    2024-04-08 18:04:03       36 阅读