我安装了多个JDK。
在我的build.gradle中,设置sourceCompatibility = 1.8
以确保使用正确的代码。这很好。
但是,Javadoc任务(./gradlew javadoc
)似乎忽略了这一点,该任务失败并出现错误(error: package sun.net.www.protocol.http is not visible
)-从this question中我了解到这是Java 9中新功能的问题。
到目前为止,该项目仅针对Java 8。有一天它会升级到Java 9,但今天不会升级,所以我只想使用Java 8 javadoc生成器而不是Java 9版本。
我检查了task documentation,但看起来没有任何选项可以指定JDK版本。我能做什么?
我期望该解决方案是Gradle配置,因此可以轻松地与不同机器上的其他开发人员共享。
看到行为的Gradle版本(通过IntelliJ安装):
------------------------------------------------------------
Gradle 4.4
------------------------------------------------------------
Build time: 2017-12-06 09:05:06 UTC
Revision: cf7821a6f79f8e2a598df21780e3ff7ce8db2b82
Groovy: 2.4.12
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 10.0.1 (Oracle Corporation 10.0.1+10-Debian-4)
OS: Linux 4.16.0-2-amd64 amd64
在其中有警告而不是Javadoc任务失败的Gradle版本(通过Debian的仓库安装):
------------------------------------------------------------
Gradle 3.4.1
------------------------------------------------------------
Build time: 2012-12-21 00:00:00 UTC
Revision: none
Groovy: 2.4.15
Ant: Apache Ant(TM) version 1.10.3 compiled on June 13 2018
JVM: 10.0.1 (Oracle Corporation 10.0.1+10-Debian-4)
OS: Linux 4.16.0-2-amd64 amd64
编辑-我发现this page指定了一个“-source release”参数,该参数可能是解决此问题的方法,但是我找不到应如何调用它:
javadoc {
options.addStringOption('-source', '8')
}
编译并运行时没有警告(在
build.gradle
中),但不做任何更改,也没有出现在/build/tmp/javadoc/javadoc.options
中。
最佳答案
我通过执行以下操作更改了路径中可用的版本:
export JAVA_HOME=/usr/lib/jvm/default-java
关于gradle - Gradle,Javadoc和JDK版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51135994/