当前位置: 首页 > news >正文

maven 中<packaging>pom</packaging>配置使用

在 Maven 项目的 pom.xml 文件中, 元素用于指定项目的打包类型。默认情况下,如果 元素没有被显式定义,Maven 会假设其值为 jar。但是,当您设置 pom 时,这意味着该项目是一个 POM(Project Object Model)项目。

pom 的含义

1、POM 项目:

当一个项目的 设置为 pom 时,表示这是一个 POM 项目。这种类型的项目主要用于聚合其他模块或管理依赖关系。
POM 项目不会生成任何实际的输出文件(如 JAR、WAR 等),而是作为其他子模块的父 POM 或者用于集中管理依赖和插件配置。

2、多模块项目:

在多模块项目中,通常有一个父 POM 项目,它使用 pom 来声明自己是父项目。父 POM 项目可以包含多个子模块,并且可以集中管理这些子模块的共同配置,例如版本号、依赖项、插件等。
子模块可以在它们各自的 pom.xml 中继承父 POM 的配置,从而减少重复配置。

3、依赖管理:

POM 项目可以用来集中管理依赖版本和其他配置,这样所有的子模块都可以引用父 POM 中定义的依赖版本,而不需要在每个子模块中单独声明。

示例

父 POM 项目

<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><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0.0</version><packaging>pom</packaging><modules><module>child-module1</module><module>child-module2</module></modules><properties><java.version>1.8</java.version><spring.version>5.3.10</spring.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><!-- 其他依赖项 --></dependencies></dependencyManagement><build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><!-- 其他插件 --></plugins></pluginManagement></build>
</project>

子模块

<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><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0.0</version></parent><artifactId>child-module1</artifactId><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><!-- 其他依赖项 --></dependencies>
</project>

在这个例子中,parent-project 是一个 POM 项目,它定义了版本号、依赖管理和插件配置。child-module1 是一个子模块,它继承了父 POM 的配置,并且可以直接使用父 POM 中定义的依赖版本。

通过这种方式,您可以更好地组织和管理大型或多模块项目,减少重复配置,并保持项目的一致性。

http://www.lryc.cn/news/495068.html

相关文章:

  • 【Python中while循环】
  • 【深度学习】服务器常见命令
  • 技术分析模板
  • python:文件操作
  • Nginx和Apache有什么异同?
  • 泰州榉之乡全托机构探讨:自闭症孩子精细动作训练之法
  • Cookie跨域
  • qt QGraphicsPolygonItem详解
  • “harmony”整合不同平台的单细胞数据之旅
  • 如何构建一个可扩展、全球可访问的 GenAI 架构?
  • QT实战--qt各种按钮实现
  • RNN And CNN通识
  • 生产环境中:Flume 与 Prometheus 集成
  • 求平均年龄
  • Ardusub源码剖析(1)——AP_Arming_Sub
  • 【NLP 2、机器学习简介】
  • 数据结构与算法——N叉树(自学笔记)
  • 【趣味升级版】斗破苍穹修炼文字游戏HTML,CSS,JS
  • 【Oracle】个人收集整理的Oracle常用SQL及命令
  • Linux内核4.14版本——ccf时钟子系统(5)——通用API
  • 安装MySQL 5.7 亲测有效
  • 《Django 5 By Example》阅读笔记:p455-p492
  • Element-UI 官网的主题切换动画
  • Golang 构建学习
  • VM Virutal Box的Ubuntu虚拟机与windows宿主机之间设置共享文件夹(自动挂载,永久有效)
  • 分析 系统滴答时钟(tickClock),设置72MHz系统周期,如何实现1毫秒的系统时间?
  • C++优选算法十七 多源BFS
  • Mongodb入门到放弃
  • 青藤云安全携手财信证券,入选金融科技创新应用优秀案例
  • 在CentOS系统中安装工具包的时候报错的解决方法