当前位置: 首页 > 知识库问答 >
问题:

如何从父项目覆盖Spring Data Mongo版本?

段干靖
2023-03-14

在我的项目中,我们有一个不在我们控制范围内的父模块,它使用mongodb-driver-core-3.6.4。jar和spring-data-mongodb-2.0.11。释放jar。但不知何故,我想使用最新版本的mongodb驱动核心和spring data mongodb。如何从父模块重写此项?

我已经浏览了链接:https://spring.io/blog/2016/04/13/overriding-dependency-versions-with-spring-boot,但不适合我。

我想覆盖Spring Boot starter版本,或者以某种方式使用mongodb-driver-3.8.2。jar和spring-boot-2.1.4。释放jar

我有pom。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.ahr</groupId>
        <artifactId>ahr-rest-api-starter-parent</artifactId>
        <version>2.3.1</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>ahr-data</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ahr-data</name>
    <description>ahr Data Service </description>

    <properties>
        <java.version>1.8</java.version>
        <mongo.version>2.1.4.RELEASE</mongo.version>
    </properties>
 ............
 ..................
 .................

共有1个答案

冀弘厚
2023-03-14

我们只需要覆盖父模块中的Spring Boot依赖项,这样spring-Data-Mongo-starter就可以获取自身的最新版本。

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

这是我们需要做的另一个改变-

<properties>
    <java.version>1.8</java.version>
    <spring.boot.version>2.1.4.RELEASE</spring.boot.version>
</properties>
 类似资料:
  • 我有多个spring项目,它们都具有相同的自定义父POM,它们都继承了它们的spring-boot版本(1.5.18.release)。只有一个子项目需要更新到版本2.1.4.release,但是当我导入spring-boot-dependencies时,子项目中的spring-boot dependencies仍然保持在版本1.5.18.release。 自定义父POM:

  • 我有这样配置的父pom: 我的孩子波姆: 我想在我的类路径中使用4.3.5版本,因为目前我收到错误消息,不应修改父版本: 任何想法如何防止覆盖4.2.9版本?

  • 问题内容: 我正在尝试从open jdk更改某些类,所以我正在创建与open jdk类相同的包结构,并且正在使用netbeans更改类。当我在构建项目时,如果覆盖类中出现问题,我会收到错误消息。如果成功构建了我的项目,则应用程序似乎不考虑我对类的更改,而是使用打开的jdk类。知道我该如何使用我的类而不是openjdk的类? 例: 如果我在项目中创建类 _sun.net.www.protocol.h

  • 本文向大家介绍如何覆盖Spring Boot项目的默认属性?相关面试题,主要包含被问及如何覆盖Spring Boot项目的默认属性?时的应答技巧和注意事项,需要的朋友参考一下 这可以通过在application.properties文件中指定属性来完成。 例如,在Spring MVC应用程序中,您必须指定后缀和前缀。这可以通过在application.properties文件中输入下面提到的属性来

  • 问题内容: 我想在哈希中设置所有条目。(SetAllEntriesToHash) 它必须在运行之前清除哈希中的所有项目。 它与GetAllEntriesFromHash相反。 问题答案: 您在这里有几个选择。 1) 您可以通过使用高级Redis API让ServiceStack为您解决此问题。 这种方法将使您不必直接处理散列细节。ServiceStack会为您解决所有问题,并将您发送的对象自动填充

  • 如果我有一个maven项目,它对A和B版本2.0有显式依赖,而A对B版本1.0有传递依赖。较新版本的B会覆盖较旧版本吗?我使用了maven Depencdy:解析目标,看起来旧版本的B没有解析。如果A与较新版本的B不兼容怎么办?或者如果A依赖于B版本2.0,而我的项目在运行依赖关系后对B版本1.0有显式依赖:解析目标,那么我看不到B的较新版本。那么如何解决这些依赖关系呢? 当我使用resolve