1

我们正在开发使用 MongoDB 作为存储的 Spring Boot 应用程序。我们想在我们的项目中添加数据库迁移工具:mongock

pom.xml我添加了一个新的依赖项:

<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongock-spring</artifactId>
    <version>3.3.2</version>
</dependency>

IntelliJ Idea 建议我将以下几行添加到module-info.java

requires mongock.spring;
requires mongock.core;

之后我无法再构建项目,我收到以下错误:

Module 'com.acme.project-name' reads package 'com.github.cloudyrock.mongock' from both 'mongock.spring' and 'mongock.core'

我对 Java 9 模块化不太了解,这就是为什么我坚持要解决这个问题,请指教。

4

1 回答 1

1

如果值得解决这个问题,可以升级到最新版本的工件。

<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongock-spring</artifactId>
    <version>4.0.1.alpha</version>
</dependency>

你可以理解这个问题在这个这个问答中意味着什么。

如果您要分析这个问题,您可以直接注意到在 version3.3.2中,有两个工件作为外部库下的依赖项引入 -mongock-springmongock-core. 此外,如果您查看 JAR,您会发现它们的包结构是相同的(即两者都有类com.github.cloudyrock.mongock),这就是您在模块路径中引入它们时看到的冲突的原因。

编辑:扩展讨论移至#mongock/issues/212

于 2020-07-16T12:03:19.623 回答