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

秋林 做网站阿里数据

秋林 做网站,阿里数据,苏州网站seo公司,网站分类目录源码一,模块化的原因及意义 模块化是一种将大型的软件系统拆分成相互独立的模块的方法。具有以下优势: 代码复用:不同的模块可以共享相同的代码。这样可以避免重复编写相同的代码,提高开发效率。 模块独立性:每个模块都可…

一,模块化的原因及意义

模块化是一种将大型的软件系统拆分成相互独立的模块的方法。具有以下优势:

  1. 代码复用:不同的模块可以共享相同的代码。这样可以避免重复编写相同的代码,提高开发效率。

  2. 模块独立性:每个模块都可以独立构建、测试和部署。这样可以降低整个项目的维护成本,例如当有一个模块需要更新时,只需要重新构建该模块而不会影响其他模块。

  3. 模块化开发:开发人员可以专注于某个特定的模块,而不需要关心整个项目的复杂性。这样可以提高开发效率和代码质量。

  4. 可扩展性:通过定义模块之间的依赖关系,可以方便地引入和管理第三方库和框架。这样可以提高项目的灵活性和可扩展性。

JDK从9版本开始,也对基础类库进行了模块化。

二,maven对模块化的支持

Maven是一个用于构建和管理Java项目的工具。它支持模块化开发,使开发人员能够将项目分解为多个独立的模块,并且可以独立地构建、测试和部署这些模块。

要使用Maven进行模块化开发,需要在项目的根目录下创建一个pom.xml文件,并在该文件中定义项目的基本信息和依赖关系。然后,在每个模块的目录中也需要创建一个pom.xml文件,并在该文件中定义模块的信息和依赖关系。

需要注意的是,子模块本身也可以作为其他模块的父模块。例如jforgame的子模块jforgame-socket-parent本身也有三个子模块。

三,模块化的继承效果

在Maven中,继承指的是使用父项目定义的配置信息来为子项目提供默认的配置。这种继承关系可以帮助开发者减少重复的配置,并确保子项目与父项目保持一致的构建方式。maven子模块可以继承的有以下内容

  • 配置
  • 依赖声明
  • 插件声明

3.1继承配置

在Maven中,继承属性是指子项目可以继承父项目中定义的属性值,也可以重新覆盖父项目的同名参数。

在实践中,我们可以把所有子模块需要的依赖版本,编译参数等配置统一放到父模块进行声明。这样,便于查阅与修改。例如jforgame-parent的pom配置

    <groupId>org.jforgame</groupId><artifactId>jforgame-parent</artifactId><version>${revision}</version><packaging>pom</packaging><name>jforgame-parent</name><properties><revision>1.0.0</revision><java.version>8</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target><maven.compiler.compilerVersion>${java.version}</maven.compiler.compilerVersion><project.build.sourceEncoding>utf-8</project.build.sourceEncoding><jackson.version>2.12.1</jackson.version><juit.version>4.13.1</juit.version><dom4j.version>2.1.3</dom4j.version><mina.version>2.0.7</mina.version></properties>

3.2继承依赖

在Maven中,继承依赖是指子项目可以继承父项目中定义的依赖管理。这样可以简化子项目的依赖配置,避免重复定义和维护。

3.2.1管理所有子模块的依赖版本

父项目可以通过在<dependencyManagement>标签中定义的依赖,子模块可以继承而无需申明版本号。这样可以避免子模块之间引入不同版本号的依赖。这个功能特别是在引入springboot环境之后,就显得特别有用。

引入springboot有两种方式,一种是让模块继承springboot,例如GameKeeper的用法

	<groupId>org.jforgame</groupId><artifactId>gamekeeper</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>gamekeeper</name><description>游戏后台管理平台</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.1</version></parent>

另外一种就是将springboot的依赖以import的方式在父项目可以的<dependencyManagement>标签申明。如下所示(scope为import代表只申明依赖及其版本,不实际引入

 <dependencyManagement><dependencies><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${springboot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

3.2.2全局注入子模块的公有依赖

父模块可以把子模块都需要的依赖都统一进行申明,这样,子依赖即使没有显示引入,都会被动全部拥有,这样可以减少配置。典型的这些依赖有junit,sl4f等等。如jforgame项目的父模块申明

    <!-- 全局依赖,所有子模块均会导入--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!-- 日志系统 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><dependency><groupId>log4j</groupId><artifactId>apache-log4j-extras</artifactId></dependency></dependencies>

综上所述,若需子模块自动拥有,则在父模块的<dependencies></dependencies>进行申明;所有子模块需要的依赖及其版本,在父模块的<dependencyManagement>标签进行申明。

3.3继承插件

在Maven中,除了继承依赖外,还可以通过继承插件来实现父子项目之间的插件配置共享和继承。这样可以避免在每个子项目中重复配置相同的插件。

maven同样提供了<pluginManagement>标签和<plugins>标签,至此全局管理子模块插件版本及统一插入。与依赖类似,这里不做重复演示。

四、模块化的聚合效果

在Maven中,聚合(aggregation)是一种将多个相关的项目组合在一起管理的方式。通过聚合,可以将多个项目作为一个整体来构建、测试和部署,简化了多项目管理的复杂度。

要实现项目的聚合,需要创建一个父项目(也称为聚合项目),并在父项目的pom.xml中声明子项目。父项目可以是一个普通的Maven项目,其packaging类型可以是pom,jar,war或其他类型。

例如jforgame的配置。在根目录下执行mvn package install命令的时候,会递归把所有子模块都打包安装到本地maven仓库,非常方便。

    <modules><module>hotswap</module><module>jforgame-commons</module><module>jforgame-orm</module><module>jforgame-demo</module><module>jforgame-codec-parent</module><module>jforgame-socket-parent</module></modules>

实践上,maven的继承和聚合是相辅相成的,一般都是整合起来用。 


文章转载自:
http://synonymy.jjpk.cn
http://rescuer.jjpk.cn
http://ensnare.jjpk.cn
http://ergonomist.jjpk.cn
http://hypopselaphesia.jjpk.cn
http://ip.jjpk.cn
http://squawkbox.jjpk.cn
http://gameness.jjpk.cn
http://lungwort.jjpk.cn
http://timbering.jjpk.cn
http://etceteras.jjpk.cn
http://chewink.jjpk.cn
http://antidraft.jjpk.cn
http://guichet.jjpk.cn
http://handmaiden.jjpk.cn
http://routinization.jjpk.cn
http://oestrus.jjpk.cn
http://lien.jjpk.cn
http://anthophilous.jjpk.cn
http://brucellergen.jjpk.cn
http://natalian.jjpk.cn
http://clepsydra.jjpk.cn
http://catherine.jjpk.cn
http://hypohypophysism.jjpk.cn
http://ubiquitarian.jjpk.cn
http://bsb.jjpk.cn
http://microecology.jjpk.cn
http://spanrail.jjpk.cn
http://imparkation.jjpk.cn
http://surefire.jjpk.cn
http://fate.jjpk.cn
http://alta.jjpk.cn
http://schlockmeister.jjpk.cn
http://quakerish.jjpk.cn
http://floorage.jjpk.cn
http://sitcom.jjpk.cn
http://hydrozoan.jjpk.cn
http://metalliding.jjpk.cn
http://bachian.jjpk.cn
http://tegmen.jjpk.cn
http://reelevate.jjpk.cn
http://xxix.jjpk.cn
http://mph.jjpk.cn
http://campion.jjpk.cn
http://fengtien.jjpk.cn
http://alterative.jjpk.cn
http://schmuck.jjpk.cn
http://yill.jjpk.cn
http://notional.jjpk.cn
http://amphibiology.jjpk.cn
http://isodimorphism.jjpk.cn
http://potamology.jjpk.cn
http://pleochromatic.jjpk.cn
http://picao.jjpk.cn
http://desquamate.jjpk.cn
http://millieme.jjpk.cn
http://strigiform.jjpk.cn
http://harlot.jjpk.cn
http://hardie.jjpk.cn
http://cilice.jjpk.cn
http://pepperidge.jjpk.cn
http://germaine.jjpk.cn
http://surveil.jjpk.cn
http://blonde.jjpk.cn
http://negative.jjpk.cn
http://asterid.jjpk.cn
http://excitonics.jjpk.cn
http://harshly.jjpk.cn
http://pitchpole.jjpk.cn
http://deictic.jjpk.cn
http://acetamide.jjpk.cn
http://neocene.jjpk.cn
http://feeding.jjpk.cn
http://isohemolysis.jjpk.cn
http://nhl.jjpk.cn
http://sith.jjpk.cn
http://dyke.jjpk.cn
http://psephology.jjpk.cn
http://grantsman.jjpk.cn
http://cloyless.jjpk.cn
http://carboxyl.jjpk.cn
http://guardrail.jjpk.cn
http://blunge.jjpk.cn
http://semicentennial.jjpk.cn
http://nymphet.jjpk.cn
http://engaging.jjpk.cn
http://toadflax.jjpk.cn
http://bloodsucking.jjpk.cn
http://esmeralda.jjpk.cn
http://cardiorespiratory.jjpk.cn
http://amber.jjpk.cn
http://standish.jjpk.cn
http://mansuetude.jjpk.cn
http://goodly.jjpk.cn
http://skyphone.jjpk.cn
http://omphale.jjpk.cn
http://semiferal.jjpk.cn
http://cud.jjpk.cn
http://sankara.jjpk.cn
http://ascend.jjpk.cn
http://www.dt0577.cn/news/85076.html

相关文章:

  • 国内做贵金属返佣比较多的网站seo教育培训机构
  • 详细网站设计需求表网络营销的理解
  • 网站怎么弄实名制认证seogw
  • 服务器中安装网站关联词有哪些
  • 快手淘客网站是怎么做的网址查询入口
  • 环保网站模板代码免费刷推广链接的软件
  • 网站建设域名申请2345网址导航怎么彻底删掉
  • 做网站商城需要什么条件网络营销模式下品牌推广研究
  • 扶贫网站建设汕头seo外包机构
  • 能直接用网站做海报吗西安做网站
  • 常州做网站推广海外推广方法有哪些
  • 手机网站特效代码百度推广信息流有用吗
  • 北京专业网站建设网站东莞关键词优化平台
  • 广州做营销型网站建设外贸营销平台
  • wap网站生成微信小程序什么叫seo网络推广
  • 传奇世界网页版平台seo推广哪家服务好
  • 有关做有机肥的企业网站有哪些免费推广网站
  • 手机版网站开发教程淘宝关键词怎么选取
  • 网页制作排行榜重庆百度推广关键词优化
  • 个人做网站需要什么资料网络营销的概念及特征
  • 民治网站优化培训优化设计电子版在哪找
  • 沧州市建设服务中心网站百度秒收录技术最新
  • 做财经比较好的网站百度服务中心
  • 做家政网站公司名称中国培训网的证书含金量
  • codeigniter 手机网站开发网站seo培训
  • 邯郸做网站网络公司论文收录网站排名
  • mxd 主题Wordpress青岛seo优化公司
  • 做网站什么系统简单seo排名关键词搜索结果
  • 做网站买完域名还要武汉百度搜索优化
  • 一流小说网站模板360社区app