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

自己做的网站验证码出不来怎么回事网页设计和网站建设是同一回事吗

自己做的网站验证码出不来怎么回事,网页设计和网站建设是同一回事吗,宜春做网站 黑酷seo,我们网站百度快照显示违规内容在 Maven 项目中,pom.xml的父子模块结构是实现项目模块化管理的核心机制,主要用于解决配置复用、版本统一、批量构建等问题。下面从概念、配置、作用及示例等方面详细讲解:一、核心概念:父 POM 与子 POM父 POM(Parent …

在 Maven 项目中,pom.xml的父子模块结构是实现项目模块化管理的核心机制,主要用于解决配置复用、版本统一、批量构建等问题。下面从概念、配置、作用及示例等方面详细讲解:

一、核心概念:父 POM 与子 POM

  • 父 POM(Parent POM):相当于 "模板",定义了公共配置(如依赖版本、插件、属性等),供子模块继承。
  • 子 POM(Child POM):继承父 POM 的配置,专注于自身模块的特有配置(如模块专属依赖、资源等)。

父子关系本质是继承关系,同时父模块通常还承担聚合角色(通过modules标签管理子模块,实现批量构建)。

二、父 POM 的特点与配置

父 POM 的核心作用是抽取公共配置,避免子模块重复编写。其配置有以下特点:

1. 打包类型必须为pom

父模块本身不生成代码产物(如 JAR/WAR),仅用于管理,因此packaging标签必须设为pom

<packaging>pom</packaging>
2. 定义公共配置(供子模块继承)

父 POM 中可定义的公共配置包括:

  • properties:统一管理版本号、路径等常量(子模块可直接引用)。
  • dependencyManagement:声明依赖版本(子模块引用时无需指定版本,统一由父模块管控)。
  • pluginManagement:声明插件版本(类似依赖管理,子模块引用插件时无需指定版本)。
  • build:公共的构建配置(如资源目录、插件等,子模块可继承或覆盖)。
3. 聚合子模块(modules标签)

父模块通过modules标签列出所有子模块的相对路径,实现 "一键构建所有子模块"(聚合功能)。
例如,父模块目录下有user-serviceorder-service两个子模块:

<modules><!-- 子模块的相对路径(指向子模块目录) --><module>user-service</module><module>order-service</module>
</modules>

三、子 POM 的特点与配置

子模块通过parent标签明确继承的父模块,从而复用父 POM 的配置。

1. 声明父模块(parent标签)

子 POM 必须通过parent标签指定父模块的groupIdartifactIdversion(这三者唯一标识父模块),示例:

<parent><!-- 父模块的坐标 --><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0.0</version><!-- 父POM的相对路径(默认../pom.xml,可省略) --><relativePath>../pom.xml</relativePath>
</parent>
  • relativePath:指定父 POM 的位置(默认查找父目录的pom.xml),若找不到则从 Maven 仓库下载。
2. 子模块的特有配置

子模块可省略与父模块相同的groupIdversion(自动继承),只需定义自身的artifactId和特有配置:

<!-- 继承父模块的groupId和version,可省略 -->
<artifactId>user-service</artifactId>
<packaging>jar</packaging> <!-- 子模块通常为jar/war --><!-- 引用父模块dependencyManagement中声明的依赖(无需写version) -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 版本由父模块的dependencyManagement管控 --></dependency>
</dependencies>

四、关键区别:继承 vs 聚合

父子模块中,继承聚合是两个独立但常结合使用的概念:

  • 继承:子模块复用父模块的配置(解决 "配置重复" 问题)。
  • 聚合:父模块通过modules管理子模块(解决 "批量构建" 问题)。

一个父模块可以只做聚合(不被继承),也可以只被继承(不做聚合),但实际开发中通常两者结合(既当父模块又当聚合模块)。

五、完整示例

假设项目结构如下:

parent-project/          # 父模块目录
├── pom.xml              # 父POM
├── user-service/        # 子模块1
│   └── pom.xml
└── order-service/       # 子模块2└── pom.xml
父 POM(parent-project/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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> <!-- 父模块必须为pom --><name>Parent Project</name><!-- 聚合子模块 --><modules><module>user-service</module><module>order-service</module></modules><!-- 公共属性(版本号等) --><properties><java.version>11</java.version><spring-boot.version>2.7.0</spring-boot.version></properties><!-- 依赖版本管理(子模块引用时无需写version) --><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot.version}</version></dependency></dependencies></dependencyManagement><!-- 公共插件配置 --><build><pluginManagement> <!-- 插件版本管理 --><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin></plugins></pluginManagement></build>
</project>
子 POM(user-service/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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><relativePath>../pom.xml</relativePath> <!-- 父POM的位置 --></parent><!-- 子模块自身坐标(继承了groupId和version,只需写artifactId) --><artifactId>user-service</artifactId><name>User Service</name><!-- 引用父模块管理的依赖(无需版本) --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 子模块特有依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version> <!-- 父模块未管理,需显式指定 --></dependency></dependencies><!-- 继承父模块的插件配置(也可覆盖) --><build><plugins><!-- 引用父模块pluginManagement中的插件(无需版本) --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

六、总结

父子 POM 结构的核心价值在于:

  1. 配置复用:公共配置(版本、插件)集中在父 POM,减少重复代码。
  2. 版本统一:通过dependencyManagementpluginManagement确保所有子模块依赖版本一致,避免冲突。
  3. 批量操作:父模块通过modules聚合子模块,支持 "一键构建 / 打包所有子模块"。

实际开发中,Spring Boot 的spring-boot-starter-parent就是典型的父 POM,通过继承它可以快速获得 Spring Boot 的默认配置。

http://www.dtcms.com/a/584074.html

相关文章:

  • 淄博市建设业协会网站软件设计师考试大纲
  • 重庆网站推广步骤在线制作图片动画效果
  • 删除西部数码网站管理助手网站建设公司该如何选择
  • 浙江建设厅网站 打不开建设厅网站装修合同模板
  • 一站式婚庆公司装修平台排行榜前十名
  • ae模板下载网站推荐软件项目管理心得
  • 商城网站框架信息流优化
  • 什么的网站策划wordpress 4.9 漏洞
  • 婚纱摄影网站源码2022年房地产太惨了
  • 浦东网站建设箱海运wordpress站点版权设置
  • 网站解析不了ui设计的网站
  • 租用服务器网站wordpress 双语主题
  • 那个网站有免费的模板商城app制作教程
  • wordpress网站网页加密美空摄影网
  • 平台建设上线网站上海排名前十的装修公司
  • asp网站编辑教程中国建设银行网站解绑手机
  • 网站建设一键搭建如何介绍设计的网站模板下载地址
  • 网站建设购买数据库的流程制作网站价格不一
  • 长春制作网站厂房设计装修公司
  • 合肥学做网站app的学校开网店的流程及程序
  • 自己网站做seo网站窗口建设
  • 重庆做网站推广的公司建设银行网站预约取款
  • 衡阳衡阳县网站建设珠海网站建设q.479185700強
  • 石排网站建设陈村大良网站建设
  • 成都建筑网站建设手机怎么创建自己的网页
  • 网站可以做推广大气自适应网站源码
  • 江苏省建设厅官方网站公式公告亚马逊网站建设历程
  • 设计网站首页要几天外国ps素材网站
  • 目前网站开发的新技术海外推广方式有哪些
  • 网站推广计划效果最专业的网站建设团队