禁用Gradle中的所有JavaDoc

一些研究后的一般更新
我想构建我的项目运行gradle 2.0 ,在控制台中使用gradle build我被困在JavaDoc代。 我正在使用Java 8,精确地使用jdk1.8.0_66jre1.8.0_66 。 现在,当我想在我的powershell中构建我的项目键入gradle build ,我收到此错误:

 5 errors 10 warnings :my-subproject1:javadoc FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':my-subproject1:javadoc'. > Javadoc generation failed. 

一个样本错误和一个样本警告:

 C:\some\long\path\MyClass.java:37: error: @param name not found * @param appCode ^ C:\some\long\path\MyOtherClass.java:37: warning: no description for @param * @param appCode 

如果我在build.gradle文件中使用tasks.findByPath(":my-subproject:javadoc").enabled = false禁用其中一个子项目,则下一个子项目会出现相同的错误。
研究表明,我并不孤单于我的问题; Java 8似乎对JavaDoc非常严格。 这是由于doclint for Javadoc的新doclint for Javadoc 。 在这个网站上找到。 它还为Maven和Gradle提供了解决方案。 但对我来说它不起作用, 我得到的另一个答案也不起作用。 我在这个子项目的build.gradle尝试解决它现在看起来像这样:

 //Solution by the second link allprojects { tasks.withType(Javadoc).all { enabled = false } } //Solution by the first link if (JavaVersion.current().isJava8Compatible()) { allprojects { tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') } } } dependencies{ compile project(':my-subproject1') compile project(':my-subproject2') compile project(':my-subproject3') } 

有人知道如何解决这个问题还是有另一种解决方法?

编辑:

 C:. | Root ├───build.gradle │ └───2.0 │ └───taskArtifacts ├───buildSrc │ ├───.gradle │ │ ├───2.0 │ │ │ └───taskArtifacts │ │ └───noVersion │ │ └───buildSrc │ ├───build │ │ ├───classes │ │ │ └───main │ │ ├───dependency-cache │ │ ├───libs │ │ └───tmp │ └───src │ └───main │ └───java │ └───com │ └───custom │ └───gradle │ └───util ├───my-subproject1 ├───my-subproject2 ├───my-subproject3 │ ├───my-sub-subproject │ ├───my-current-directory | Magic happens here │ │ ├───some.package.identifier │ │ │ ├───.clover │ │ │ ├───.settings │ │ │ ├───bin │ │ │ │ └───package │ │ │ │ └───subpackage │ │ │ └───buil.gradle | This should build my subproject 

解决方案:将其放在root build.gradle文件中。

如果您有根项目构建脚本,则可以按类型禁用所有子项目的任务。 在您的情况下,按类型Javadoc ,如:

 subprojects { tasks.withType(Javadoc).all { enabled = false } } 

我也遇到了这个问题,在深入研究Gradle的源代码后,我找到了一个适用于Gradle 2.9的解决方案。

而不是options.addStringOption('Xdoclint:none', '-quiet')尝试options.addBooleanOption('Xdoclint:none', true) 。 这应该正确地将-Xdoclint:none选项传递给基础javadoc调用,并在仍然生成Javadoc输出时忽略错误。 我在javadoc任务声明中直接执行了此操作,但它可能使用您在上面尝试过的allprojects方法。

这是我禁用它的方式 – 在我的build.gradle文件中,我添加了:

 tasks.withType(Javadoc).all { enabled = false } // non ascii characters make it crash