【发布时间】:2018-06-02 03:56:27
【问题描述】:
我有一个使用 source/target = 1.9/1.9 的多模块 Gradle Java 项目。有两个模块,my.base 和 my.dependsOnBase。 my.base 模块没有其他依赖项:
module my.base {
exports my.base.foo;
exports my.base.bar;
}
my.dependsOnBase 模块只有一个依赖,即my.base:
module my.dependsOnBase {
requires my.base;
exports my.dependsOnBase.baz;
}
当我运行 $ gradle javadoc 时,它在 my.base 上运行良好。但是当它到达 my.dependsOnBase 我得到以下错误输出:
/path/to/my $ gradle javadoc
> Task :dependsOnBase:javadoc FAILED
/path/to/my/dependsOnBase/src/main/java/module-info.java:26: error: module not found: my.base
requires my.base;
^
1 error
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':dependsOnBase:javadoc'.
> Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): '/path/to/my/dependsOnBase/build/tmp/javadoc/javadoc.options'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
7 actionable tasks: 3 executed, 4 up-to-date
在项目的早期,我能够获得 Java 编译,但遇到了类似的问题,使用:
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
]
classpath = files()
}
}
但这些属性并不直接适用于 Gradle javadoc 任务。
如何让我的 Javadoc 正常工作?
【问题讨论】:
-
您能否更新问题中使用的
javadoc任务详细信息?另外,在执行该任务时,您是否尝试确保my.base模块也存在于模块路径中? -
@nullpointer,我还没有尝试过,因为我不太了解 Gradle,也无法理解如何在 Gradle 中设置
javadoc任务模块路径(盲复制/粘贴compileJava块肯定不起作用)。我的build.gradle中没有明确的javadoc任务 - 我只是使用java插件已经提供的任何东西。 -
这是 Gradle 的 JavaDoc 任务中的一个错误......即使使用新的
'org.gradle.java.experimental-jigsaw'插件,这个问题在 Gradle 4.5.1 中仍然存在。但是@Thor Andreas Rognan的回答确实对我有用!
标签: java gradle javadoc java-9 java-platform-module-system