为什么 Gradle 不使用 MRJAR 的 module-info.class?

问题描述

我目前正在使用 picocli 创建一个命令行应用程序。但是,Gradle 拒绝构建它并显示以下错误消息。

{project path}\src\main\java\module-info.java:2: error: module not found: info.picocli
    requires info.picocli;

这是我的 Gradle 依赖项:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

    implementation 'info.picocli:picocli:4.6.1'
}

Picocli 作为 MRJAR 托管,module-info.class 下有 META-INF\versions\9,但 Gradle 似乎没有使用该文件。这是为什么?

解决方法

查看 this answer,您可能需要在项目 Java 插件上设置 inferModulePath 属性。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...