2

在具有多模块的项目中,我们希望使用 picocli 和 jline 来构建控制台应用程序。我们为每个模块创建了一个 module-info.java。但是使用 picocli 我们无法编译我们的应用程序。我们有很多错误,比如

module info.picocli.shell.jline3 reads package org.jline.console from both org.jline.console and org.jline
module info.picocli.shell.jline3 reads package org.jline.console.impl from both org.jline.console and org.jline
module info.picocli.shell.jline3 reads package org.jline.keymap from both org.jline.reader and org.jline
the unnamed module reads package org.jline.keymap from both org.jline.reader and org.jline
the unnamed module reads package org.jline.reader from both org.jline.reader and org.jline
...

我们在 gradle 中包含了以下依赖项

dependencies {
    implementation 'org.fusesource.jansi:jansi:2.3.4'
    implementation 'info.picocli:picocli:4.6.1'
    implementation 'info.picocli:picocli-shell-jline3:4.6.1'
    annotationProcessor 'info.picocli:picocli-codegen:4.6.1'
}

我们的java-modules.info样子

module foo.bar.app { 
    exports foo.bar.app;

    requires info.picocli;
    requires info.picocli.shell.jline3;
    requires org.jline;
    requires org.fusesource.jansi;
}

我遵循了常见问题解答https://github.com/remkop/picocli/wiki/Java-9-modules中的建议,但没有成功。

如果我们禁用 java 模块,则可以构建并运行应用程序。

有没有人有类似的问题并知道一些建议?

4

0 回答 0