您的位置:首页 > 健康 > 养生 > 广西梧州市住房和城乡建设局网站_移动互联网开发平台有哪些_ip营销的概念_湖北短视频搜索seo

广西梧州市住房和城乡建设局网站_移动互联网开发平台有哪些_ip营销的概念_湖北短视频搜索seo

2025/5/8 18:59:34 来源:https://blog.csdn.net/weixin_45691227/article/details/147120350  浏览:    关键词:广西梧州市住房和城乡建设局网站_移动互联网开发平台有哪些_ip营销的概念_湖北短视频搜索seo
广西梧州市住房和城乡建设局网站_移动互联网开发平台有哪些_ip营销的概念_湖北短视频搜索seo

Maven作用

  • 依赖管理、版本控制
  • 标准化项目结构、自动化构建
  • 项目生命周期管理
  • 细分项目模块
  • 自动化构建、通过插件拓展构建过程

Maven下载及配置

https://blog.csdn.net/qq_29689343/article/details/135566775

使用IDEA 构建Maven工程

https://blog.csdn.net/qq_29689343/article/details/135567742
https://blog.csdn.net/qq_29689343/article/details/135569292

Maven依赖传递和依赖冲突

依赖传递

依赖传递包括直接依赖和间接依赖。直接依赖是项目直接引用的库,而间接依赖是直接依赖所引用的其他库。
原则:

  • 传递性: Maven 会自动传递依赖,确保直接依赖所需的库的所有间接依赖也能够被正确解析和获取。
  • 最短路径优先: Maven 会选择最短路径来解析依赖,以确保使用最直接、最适合的版本。
  • 冲突解决: 当出现版本冲突时,Maven 会根据一定的规则进行解决,通常选择最高版本的库。

依赖冲突

当直接引用或者间接引用出现了相同的 jar 包 依赖冲突出现
1.Maven自动解决依赖冲突:
短路优先原则(第一原则)
A—>B—>C—>D—>E—>X(version 0.0.1)
A—>F—>X(version 0.0.2)
则 A 依赖于 X(version 0.0.2)。

依赖路径长度相同情况下,则“先声明优先”(第二原则)
A—>E—>X(version 0.0.1)
A—>F—>X(version 0.0.2)
在中,先声明的,路径相同,会优先选择

2.手动排除解决

 <dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><exclusion><groupId>com.alibaba</groupId><artifactId>druid</artifactId></exclusion></exclusions></dependency></dependencies>

Maven继承和聚合

继承

Maven 支持工程之间的继承关系,其中一个工程可以作为另一个工程的父工程。这种继承关系允许子工程继承父工程的配置、插件、依赖等信息,从而减少冗余配置,提高项目的可维护性。
继承语法:
在子工程的pom.xml文件中,使用元素来声明父工程。,建立了与父工程的继承关系。

 <parent><artifactId>youlai-system</artifactId><groupId>com.youlai</groupId><version>3.2.1</version></parent>

父工程统一管理依赖版本(此时被管理的依赖并没有真正被引入到工程)

    <dependencyManagement><dependencies><!--Spring Cloud  & Alibaba  --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!-- API 接口文档 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-dependencies</artifactId><version>${knife4j.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>${mybatis-plus.version}</version></dependency><!-- 分布式文件存储 --><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>${minio.version}</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>${weixin-java.version}</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>${weixin-java.version}</version></dependency><!-- redisson 分布式锁 --><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>${redisson.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-core</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-mybatis</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-rabbitmq</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-redis</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-web</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-security</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-seata</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-apidoc</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>common-sms</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>${aliyun.java.sdk.core.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>${aliyun.java.sdk.dysmsapi.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>${easyexcel.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>system-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>oms-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>pms-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>ums-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>com.youlai</groupId><artifactId>sms-api</artifactId><version>${project.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${mapstruct.version}</version></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${mapstruct.version}</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun-sdk-oss.version}</version></dependency></dependencies></dependencyManagement>

子工程在自己的pom.xml继承父工程依赖版本,不需写版本号

  <dependencies><!-- Spring Cloud & Alibaba --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><!-- 注册中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><artifactId>jsr305</artifactId><groupId>com.google.code.findbugs</groupId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><!-- 配置中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- Sentinel流量控制、熔断降级 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- Sentinel规则持久化至Nacos配置 --><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency><!-- 分布式对象存储 --><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId></dependency></dependencies>

聚合

Maven 聚合是指一个父工程包含了多个子模块,这些子模块可以是独立的 Maven 工程。这种关系允许在一个父工程中同时构建和管理多个相关联的子模块,形成一个整体的项目。通过聚合,可以一次性构建整个项目,而不必逐个构建每个子模块。
聚合的语法:
在父工程的 pom.xml 文件中,使用 元素来声明子模块。

<modules><module>子模块1</module><module>子模块2</module><!-- 可以有更多的子模块 -->
</modules>

Maven私服

https://blog.csdn.net/qq_29689343/article/details/135582911

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com