Mongodb 在添加了对mongock的依赖之后,如何解决Java9模块化的问题?

Mongodb 在添加了对mongock的依赖之后,如何解决Java9模块化的问题?,mongodb,java-9,java-module,java-platform-module-system,mongock,Mongodb,Java 9,Java Module,Java Platform Module System,Mongock,我们正在开发使用MongoDB作为存储的Spring引导应用程序。 我们希望将DB迁移工具添加到我们的项目中: 在pom.xml中,我添加了一个新的依赖项: <dependency> <groupId>com.github.cloudyrock.mongock</groupId> <artifactId>mongock-spring</artifactId> <version>3.3.2</ve

我们正在开发使用MongoDB作为存储的Spring引导应用程序。 我们希望将DB迁移工具添加到我们的项目中:

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

<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongock-spring</artifactId>
    <version>3.3.2</version>
</dependency>
在此之后,我无法再构建项目,我得到以下错误:

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

我不太了解Java 9模块化,这就是为什么我一直在解决这个问题,请给出建议。

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

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

com.github.cloudyrock.mongock
和问答

如果您要分析这个问题,您可以直接注意到,对于版本
3.3.2
,有两个工件作为依赖项引入外部库中-
mongockspring
mongockcore
。此外,如果您查看JAR,您会发现它们的包结构是相同的(即两者在
com.github.cloudyrock.mongock
中都有类),这就是在modulepath中引入它们时出现冲突的原因


编辑:要转移到的扩展讨论。

这是否意味着mongock本身存在问题?而且没有办法使用3.3.2版本?@user471011这意味着你至少不能在modulepath上使用
mongock spring:3.3.2
。因此,如果没有
模块info.java
,您仍然可以使用java-9+和
3.3.2
的组合。(依赖项应位于类路径上)
<dependency>
    <groupId>com.github.cloudyrock.mongock</groupId>
    <artifactId>mongock-spring</artifactId>
    <version>4.0.1.alpha</version>
</dependency>