【发布时间】:2021-07-27 22:32:40
【问题描述】:
我做了一个极简的 java gradle 项目来测试 java 9 模块。
我只制作了 1 个模块并尝试根据第三方模块进行测试。但是当我尝试构建或运行项目时,我不断收到错误消息:
module not found: commons.validator
这是我的文件:
Demo.java"
public class Demo {
public static void main(String[] args) {
boolean result = EmailValidator.getInstance().isValid("abcd");
System.out.println(result);
}
}
模块信息.java:
module auth.server.main {
requires commons.validator;
}
build.gradle:
plugins {
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
// for email validation
implementation 'commons-validator:commons-validator:1.7'
}
/*this is to let gradle infer the locations of the modules*/
java {
modularity.inferModulePath.set(true)
}
出了什么问题以及如何解决?
【问题讨论】:
-
鉴于 Apache 对
groupId约定的更改和 Bean Validation 的存在,如果commons-validator:1.7足够新来声明模块,我会感到惊讶。您期望commons.validator存在的原因是什么? -
@chrylis-cautiouslyoptimistic-commons.validator 是自动赋予模块的名称,可以通过命令
jar --file=<filepath> --describe-module找到,然后应用命名规则提取模块名称 该库运行良好但是当我在我的项目中定义模块信息时它停止工作,龙目岛也发生同样的情况,ide(intellij idea Ultimate)也找不到它
标签: java maven gradle java-platform-module-system