gradle - Gradle,Javadoc和JDK版本

标签 gradle java-8 javadoc

我安装了多个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/

相关文章:

Java 泛型不兼容类型(不存在类型变量的实例)

eclipse - 使用 Play 框架下载依赖 Jar 的源代码和 Javadoc

具有Gradle : Don't get the libraries while running javadoc task的Javadoc

gradle - 我可以通过groovy更简单(更短)地实现此代码吗?

java - 如何使用Gradle切换Selenium WebDrivers?

java - 在 Intellij IDEA 中将 Java 8 流降级为 Java 7 循环

java - @see 标记,链接其他类方法

gradle - 设置Gradle自定义任务输入和输出

android - 本地路径不存在

java - 并行流概念