maven的三种工程 pom工程、jar工程、war工程的区别和使用

本文深入解析Maven项目管理核心概念,包括pom工程、jar工程和war工程的创建与应用,阐述如何通过Maven实现版本管理、依赖管理和项目构建,以及父工程和聚合工程在统一版本控制和资源管理中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:pom工程:作用1、管理版本;2、聚合工程

1、版本管理。首先创建pom工程:new-->maven project-->勾上create a simple project。到第三幅图,这里才显示maven工程的不同所在,他有一个parent project,也即是父工程,也就是工程继承,理解工程继承也就理解了maven。maven的作用是:

  1. 依赖管理、jar包、工程之间的依赖。
  2. 项目构建。实现项目的一步构建。
  3. 工程聚合、继承、依赖。

 

 

最后创建出来的就是这么一个项目。结构非常简单

重点就在于这个pom文件,dependency标签,这是maven的标签。

这个pom工程是个父工程。是用来让别的工程来继承的。里面没有什么代码,只是pom文件里面定义了依赖的坐标和版本号。继承他的子工程都自动的使用同样的版本和依赖工具。这既是maven的好处。

2、聚合工程

聚合工程跟上面的一样,只是pom文件里面会有以来的独立的包。看截图,右图是聚合工程的工程结构,红框里面都是新建的四个独立的工程,在manager上右键new--》maven module,前三个是jar工程,第四个是war工程。maven的这四类工程都是相辅相成的,互相配合使用,他们都是用manager这个父工程,而manager有继承parent这个夫工程,这两个父工程都是pom工程。

意义:这其中的意义就在与父工程能集体控制版本。

二:jar工程

1、new--》maven project(module也是工程) --》 填选择jar --》 写继承工程。看下图,工程结构就是这样子。

意义:jar工程可以打包,有自己的坐标,跟依赖工具一样的使用。可以缩减依赖。即把多个工程都依赖的包打包成一个jar工程,这些工程依赖这个工程就可以了。

三:war工程

1、new --》maven project --》 选择war --》 填写父工程。结构如下图

意义:和jar工程非常像,只是它是一个web工程,能对外提供服务http接口。

### Maven工程与子工程 POM 文件配置详解 #### 父工程POM文件配置 父工程的`pom.xml`主要用于集中管理定义多个子模块共有的依赖项、插件以及一些全局设置。为了使一个项目成为其他项目的父项目,在该工程的`<packaging>`标签内应指定为`pom`,这表明此项目仅作为聚合作用而不生成具体的制品如JARWAR文件[^3]。 下面是一份典型的父工程`pom.xml`示例: ```xml <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.parent</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> <!-- 设置打包方式为pom --> <packaging>pom</packaging> <!-- 统一管理依赖版本 --> <dependencyManagement> <dependencies> <!-- 示例依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement> <!-- 配置属性变量 --> <properties> <java.version>1.8</java.version> </properties> </project> ``` #### 子工程POM文件配置 对于每一个子工程而言,则需在其自身的`pom.xml`中声明所属的父工程信息以便能够继承来自父工程的各种设定。具体做法是在子工程的`pom.xml`里加入`<parent>`节点并填写相应的组ID(`groupId`)、构件ID(`artifactId`)及版本号(`version`)等字段[^2]。 这里给出一段简单的子工程`pom.xml`片段展示如何关联到上述提到的那个父工程上: ```xml <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.parent</groupId> <artifactId>parent-project</artifactId> <version>1.0.0</version> </parent> <!-- 自身的具体信息 --> <artifactId>child-module-name</artifactId> <name>${project.artifactId}</name> <!-- 可以省略版本号其他已经在父工程中定义的内容 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <!-- 版本由父工程控制 --> </dependency> </dependencies> </project> ``` 通过这种方式建立起来的关系使得各个子模块之间共享相同的构建策略资源描述,同时也简化了跨模块间的协作开发流程[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值