禁用 Gradle 中的所有 JavaDoc

2022-09-02 02:12:35

常规更新,经过一些研究
,我想在控制台中构建运行的项目,我陷入了JavaDoc生成。我正在使用Java 8,精确地和.现在,当我想构建我的项目时,在我的powershell中键入,我得到这个错误:gradle 2.0gradle buildjdk1.8.0_66jre1.8.0_66gradle 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

如果我在我的文件中禁用了我的一个子项目,我会在下一个子项目中收到相同的错误。
研究表明,我并不孤单。Java 8似乎对JavaDoc非常严格。这是由于新的.在此站点上找到。它还为Maven和Gradle提供了解决方案。但对我来说,这不起作用,我得到的另一个答案也不起作用。我现在试图解决它的尝试在我的子项目中看起来像这样:tasks.findByPath(":my-subproject:javadoc").enabled = falsebuild.gradledoclint for Javadocbuild.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

溶液:将其放在根文件中。build.gradle


答案 1

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

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

答案 2

我也遇到了这个问题,在挖掘了Gradle的源代码之后,我发现了一个在Gradle 2.9中有效的解决方案。

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


推荐