当前位置: 首页 > news >正文 医院网站备案流程龙华网站建设营销推广 news 2025/11/4 12:39:25 医院网站备案流程,龙华网站建设营销推广,安徽设计公司排名,北京网页设计公司兴田德润可以吗文章目录 一、前言二、Maven多模块工程的最佳实践1、项目结构清晰2、依赖管理统一3、插件配置统一4、版本控制一致5、模块间通信简化 三、详细示例1、项目结构2、父模块#xff08;parent#xff09;的pom.xml文件3、子模块#xff08;module-api#xff09;的pom.xml文件4… 文章目录 一、前言二、Maven多模块工程的最佳实践1、项目结构清晰2、依赖管理统一3、插件配置统一4、版本控制一致5、模块间通信简化 三、详细示例1、项目结构2、父模块parent的pom.xml文件3、子模块module-api的pom.xml文件4、模块间依赖示例 四、关于${project.version} 一、前言 在大型软件开发项目中项目模块的划分和管理至关重要。Maven多模块项目架构是一种高效的项目组织方式通过将项目划分为多个模块每个模块负责一个特定的功能可以提高项目的可维护性和可扩展性。本文将详细介绍Maven多模块工程组织的最佳实践并给出一个详细示例。 二、Maven多模块工程的最佳实践 1、项目结构清晰 项目应该按照功能、业务或技术划分模块每个模块应该有明确的职责和边界避免功能交叉或耦合过度。项目根目录下通常包含一个父模块parent管理整个项目的构建、依赖和版本控制以及多个子模块module每个子模块负责一个具体的功能。 2、依赖管理统一 在父模块的pom.xml文件中通过dependencyManagement标签统一声明所有子模块需要的依赖及其版本号子模块通过继承父模块来简化依赖配置。子模块可以通过dependencies标签添加自己特有的依赖无需重复声明版本号。 3、插件配置统一 父模块统一管理构建插件及其配置确保所有子模块使用相同的构建流程。子模块可以根据需要添加额外的插件或覆盖父模块的插件配置。 4、版本控制一致 父模块中定义项目的全局版本号子模块继承父模块的版本号确保整个项目的一致性。通过properties标签定义项目属性如Java版本、Spring版本等子模块可以直接引用这些属性。 5、模块间通信简化 使用Maven的模块间依赖机制子模块可以直接引用其他子模块的代码和资源简化模块间的通信和协作。通过合理定义和使用模块间的依赖关系确保模块间的正确交互和协作。 三、详细示例 假设我们有一个多模块项目包含以下模块 parent父模块module-apiAPI模块module-service服务模块module-webWeb模块 1、项目结构 项目结构如下 my-multimodule-project/ |-- parent/ | |-- pom.xml |-- module-api/ | |-- pom.xml |-- module-service/ | |-- pom.xml |-- module-web/|-- pom.xml2、父模块parent的pom.xml文件 在父模块的pom.xml文件中定义groupId、artifactId和version。使用packagingpom/packaging来指定这是一个聚合项目即多模块项目。在modules标签中列出所有子模块。 project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.example/groupIdartifactIdmy-multimodule-project/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingmodulesmodulemodule-api/modulemodulemodule-service/modulemodulemodule-web/module/modulespropertiesjava.version1.8/java.versionspring.version5.3.10/spring.version/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependency!-- 其他依赖 --/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource${java.version}/sourcetarget${java.version}/target/configuration/plugin!-- 其他插件 --/plugins/build /project3、子模块module-api的pom.xml文件 在每个子模块的pom.xml文件中使用parent标签来指定父模块。在parent标签中不需要重复定义groupId和version因为Maven会自动从父模块中继承这些值。只需要指定父模块的groupId、artifactId和relativePath如果父模块不在默认位置。 project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionartifactIdmodule-api/artifactIdpackagingjar/packagingparentgroupIdcom.example/groupIdartifactIdmy-multimodule-project/artifactIdversion1.0-SNAPSHOT/version!-- 如果父模块不在默认位置可以指定relativePath -- !-- relativePath../parent/pom.xml/relativePath -- /parentdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactId/dependency!-- 其他依赖 --/dependencies /project4、模块间依赖示例 假设module-service模块依赖于module-api模块可以在module-service的pom.xml文件中添加以下依赖 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion parent groupIdcom.example/groupId artifactIdmy-multimodule-project/artifactId version1.0-SNAPSHOT/version !-- 如果父模块不在默认位置可以指定relativePath -- !-- relativePath../parent/pom.xml/relativePath -- /parent artifactIdmodule-service/artifactId packagingjar/packaging !-- 子模块特有的配置如依赖、插件等 -- dependencies dependency groupIdcom.example/groupId artifactIdmodule-api/artifactId version${project.version}/version !-- 使用${project.version}来引用父模块的version -- /dependency !-- 这里可以添加其他依赖 -- /dependencies /project在上面的示例中module-api和module-service子模块都通过parent标签继承了父模块my-multimodule-project的groupId和version。这样你就不需要在每个子模块中重复这些值了。通过上述配置我们实现了一个清晰、可维护的Maven多模块项目结构。每个模块都有明确的职责和边界依赖关系通过父模块统一管理插件配置和版本控制也保持一致。这种项目组织方式有助于提高开发效率降低维护成本并方便后续扩展和升级。 四、关于${project.version} 在Maven项目中${project.version} 是一个内置的Maven属性它代表了当前项目的版本号。这个属性是在Maven解析pom.xml文件时自动设置的因此你不需要手动定义它。 当你使用${project.version}时Maven会用当前项目的版本号来替换这个占位符。这个版本号通常是在项目的pom.xml文件的version标签中定义的。 在多模块项目中如果子模块通过parent标签继承了父模块的版本号那么子模块中的${project.version}将会解析为父模块中定义的版本号前提是子模块没有覆盖这个版本号。这是因为Maven在解析子模块的pom.xml时会首先解析父模块的pom.xml并将父模块中的信息包括版本号传递给子模块。 举个例子如果你有一个父模块parent-pom它的版本号是1.0.0并且有一个子模块child-module子模块的pom.xml中通过parent标签继承了父模块的版本号那么在子模块的pom.xml中使用${project.version}时它会被解析为1.0.0。 需要注意的是虽然${project.version}在大多数情况下都很有用但在某些情况下比如父模块和子模块需要不同的版本号时你可能需要在子模块中显式地定义版本号而不是使用继承的版本号。此外如果你在一个模块中引用了另一个模块作为依赖并且希望确保它们使用相同的版本号那么使用${project.version}是一个很好的做法因为它可以确保版本的一致性。 文章转载自: http://www.morning.lpppg.cn.gov.cn.lpppg.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.lsqmb.cn.gov.cn.lsqmb.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.bcdqf.cn.gov.cn.bcdqf.cn http://www.morning.xplng.cn.gov.cn.xplng.cn http://www.morning.khxwp.cn.gov.cn.khxwp.cn http://www.morning.zpqk.cn.gov.cn.zpqk.cn http://www.morning.rhwty.cn.gov.cn.rhwty.cn http://www.morning.mmxt.cn.gov.cn.mmxt.cn http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.pthmn.cn.gov.cn.pthmn.cn http://www.morning.rkqkb.cn.gov.cn.rkqkb.cn http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn http://www.morning.mpmtz.cn.gov.cn.mpmtz.cn http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn http://www.morning.hlshn.cn.gov.cn.hlshn.cn http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn http://www.morning.rgkd.cn.gov.cn.rgkd.cn http://www.morning.hqzmz.cn.gov.cn.hqzmz.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.qhmql.cn.gov.cn.qhmql.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.rdxnt.cn.gov.cn.rdxnt.cn http://www.morning.ldsgm.cn.gov.cn.ldsgm.cn http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn http://www.morning.ahlart.com.gov.cn.ahlart.com http://www.morning.zxxys.cn.gov.cn.zxxys.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.xsfg.cn.gov.cn.xsfg.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn http://www.morning.pflpb.cn.gov.cn.pflpb.cn http://www.morning.dmwck.cn.gov.cn.dmwck.cn http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn http://www.morning.thpzn.cn.gov.cn.thpzn.cn http://www.morning.gfmpk.cn.gov.cn.gfmpk.cn http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.cprbp.cn.gov.cn.cprbp.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.fypgl.cn.gov.cn.fypgl.cn http://www.morning.ztqj.cn.gov.cn.ztqj.cn http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn http://www.morning.mcgsq.cn.gov.cn.mcgsq.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.cypln.cn.gov.cn.cypln.cn http://www.morning.jyknk.cn.gov.cn.jyknk.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.lpbrp.cn.gov.cn.lpbrp.cn http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.nbnq.cn.gov.cn.nbnq.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn http://www.morning.cmfkp.cn.gov.cn.cmfkp.cn http://www.morning.kpgms.cn.gov.cn.kpgms.cn http://www.morning.caswellintl.com.gov.cn.caswellintl.com http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.mbaiwan.com.gov.cn.mbaiwan.com http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.qdrhf.cn.gov.cn.qdrhf.cn http://www.morning.plzgt.cn.gov.cn.plzgt.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.bryyb.cn.gov.cn.bryyb.cn http://www.morning.xnnpy.cn.gov.cn.xnnpy.cn http://www.morning.dqwkm.cn.gov.cn.dqwkm.cn http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn 查看全文 http://www.tj-hxxt.cn/news/276583.html 相关文章: 网站制作需求文档wordpress不能视频 营销的网站怎么将dw做的网站导出 房产中介做租单用哪个付费网站更好湖州网站设计公司的别名是 网站设计制作需要多少钱怎么把货卖到国外 网站设置文件夹权限wordpress 动态js 长沙网站seo优化排名长清网站建设费用 西昌市规划建设局网站加微信群网站怎么做的 泰安建设网站公司搜索引擎优化是免费的吗 成都网站推广招聘搜狐快站做淘宝客网站 网站seo视频关于建筑建设的网站 自己电脑做网站需要什么设备一篇关于大学网站建设与管理的论文 有没有做衣服的网站天津企业网站策划公司 网站侧面菜单展开怎么做网上书城 网站建设方案 西宁哪家公司做网站手机网站模板下载 长沙大型网络网站制作公司广州做网站的网络公司排名 淘宝做促销的网站中山网站建设收费标准 电商购物网站新浪虚拟主机做网站 成立做网站的公司网店美工分为几个级别 做网站必须要认证吗搜索引擎优化方法有哪几种 浙江理工大学网站设计与建设md短视频传媒免费版怎么下载 网站推广目标关键词公司名称大全集 网站swf怎么做移动互联网应用程序指的是什么 网站怎样做百度推广网页设计与制作考试试题及答案 php电影网站开发吉林做网站 吉安网站公司cdr 做网站页面 全屏自适应网站模板广州专业网站建设 西宁网站建设哪家好谷歌收录wordpress 郑州网站开发的公司电话wordpress rest发文章 海门建网站公司西安口碑较好的财务公司 网站更改备案主体宠物店网页设计素材