java - 如何将 spring data mongodb 2.1.0.RELEASE 与 spring boot 2.0.5 和 Jhipster 5.3.3 一起使用?
问题描述
我正在使用带有 Jhipster 5.3.3 的 spring-boot 2.0.5.RELEASE,我的 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 事务管理的支持,我想试一试,因为它听起来很酷!
基于弹簧参考文档: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。
解决方案
我找到了方法,因为我使用 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 参考指南才能理解这一点。
推荐阅读
- java - 在哪里使用 Spring Beans 而不是 Classic Java Objects
- python - 如何将数组的某些元素与 Python 中的不同 sclar 相乘
- python - Python 和 R 中的整数除法返回有趣的错误数字
- javascript - Javascipt动画文字一个接一个
- python - 从 Node.js 启动 Python 进程时文件转储失败
- scheme - Racket/Scheme - (define ((function-name arg1) arg2) (body ...)) - 符号
- apache-kafka - Hdfs-Sink 连接器根据文件名创建了数据重复
- flutter - 颤振 | Dart 有没有更优雅的方式来编写这段代码?
- javascript - 如何使用来自 div 输入标签的输入进行计算
- postgresql - Postgres - 函数