如何解决从 ru.vyarus.dropwizard.guicey.jdbi3 和 org.jdbi.v3.core 读取包 org.jdbi.v3.core

问题描述

想对整个应用进行模块化,即从 Java 8 迁移到 Java 11,但随着模块化出现了一些依赖冲突。

enter image description here

enter image description here

这两个 jar 包都具有相同名称的包,因此会导致 100 + 编译错误

[ERROR] error: module java.xml.bind reads package org.jdbi.v3.core from both org.jdbi.v3.core and ru.vyarus.dropwizard.guicey.jdbi3 消息。 尝试使用 Maven 从 ru.vyarus.dropwizard.guicey.jdbi3 org.jdbi.v3 中排除,但没有奏效

<dependency>
          <groupId>ru.vyarus.guicey</groupId>
        <artifactId>guicey-jdbi3</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.jdbi</groupId>
                <artifactId>jdbi3-core</artifactId>
            </exclusion>
        </exclusions>
</dependency>

请指教。

解决方法

好吧,深入研究 Java 9 给出了最基本的答案,这就是一切

拆分包问题

应该可以解决。

How to Fix the Split Package Issue 部分提出了非常有趣的解决方案。