【问题标题】:How can i use spring data mongodb 2.1.0.RELEASE with spring boot 2.0.5 and Jhipster 5.3.3?我如何将 spring data mongodb 2.1.0.RELEASE 与 spring boot 2.0.5 和 Jhipster 5.3.3 一起使用?
【发布时间】:2019-03-05 08:34:46
【问题描述】:

我正在使用 spring-boot 2.0.5.RELEASE 和 Jhipster 5.3.3,我的 pom 如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.github.jhipster</groupId>
            <artifactId>jhipster-dependencies</artifactId>
            <version>${jhipster-dependencies.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- jhipster-needle-maven-add-dependency-management -->
    </dependencies>
</dependencyManagement>
...
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
...

现在我了解到 Spring Data 已经发布了对 MongoDB4 事务管理的支持,我想试一试,因为它听起来很酷!

基于 spring 参考文档:https://docs.spring.io/spring-data/mongodb/docs/2.1.0.RELEASE/reference/html/#dependencies

在 spring boot 中使用 spring data mongodb 2.1.0.RELEASE 就像添加 releasetrain 的 BOM 一样简单。我做了什么,我的 pom 变成了:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.github.jhipster</groupId>
            <artifactId>jhipster-dependencies</artifactId>
            <version>${jhipster-dependencies.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- jhipster-needle-maven-add-dependency-management -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>Lovelace-RELEASE</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies>

</dependencyManagement> 

但这并没有带来任何spring data mongodb 2.1.0 jars,只有releasetrain lovelace 的pom。 Maven只下载releasetrain的pom,继续下载spring boot 2.0.5自带的spring data mongodb 2.0.10。

【问题讨论】:

    标签: java spring-boot maven-3 jhipster spring-data-mongodb


    【解决方案1】:

    在你的 pom.xml 中添加 spring-data-mongodb

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
        </dependency>
    

    【讨论】:

      【解决方案2】:

      我找到了方法,因为我使用 Jhipster 作为我的项目 pom 的父级,所以我必须在 Jhipster 之前声明 lovelace 依赖管理,所以我的 pom 变成了:

      <dependencyManagement>
        <dependencies>
          <dependency>
              <groupId>org.springframework.data</groupId>
              <artifactId>spring-data-releasetrain</artifactId>
              <version>Lovelace-RELEASE</version>
              <scope>import</scope>
              <type>pom</type>
          </dependency>
          <dependency>
              <groupId>io.github.jhipster</groupId>
              <artifactId>jhipster-dependencies</artifactId>
              <version>${jhipster-dependencies.version}</version>
              <type>pom</type>
              <scope>import</scope>
          </dependency>
      </dependencies>
      
      </dependencyManagement> 
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-mongodb</artifactId>
      </dependency>
      

      然后Maven会下载lovelace依赖管理中指定的spring data mongodb版本。

      我必须阅读 spring boot 参考指南才能理解这一点。

      【讨论】:

        猜你喜欢
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        • 2017-01-13
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 1970-01-01
        • 2019-03-14
        相关资源
        最近更新 更多