Отключите все JavaDoc в Gradle

Общее обновление после некоторых исследований
Я хочу, чтобы мой проект выполнял gradle 2.0 с gradle build в консоли, которую я застрял в генерации JavaDoc. Я использую Java 8, точно jdk1.8.0_66 и jre1.8.0_66. Теперь, когда я хочу создать свой проект, набрав 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

Если я отключу один из моих подпроектов, используя tasks.findByPath(":my-subproject:javadoc").enabled = false в моем файле build.gradle, я получаю ту же ошибку для следующего подпроекта.
Исследования показали, что я не одинок с моей проблемой; Java 8 очень похож на 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')
}

Кто-нибудь знает, как решить эту проблему, или есть другой способ обхода?

Edit:

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

Если у вас есть корневая сборка проекта script, вы можете отключить все задачи подпроектов по типу. В вашем случае по типу Javadoc, например:

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

Ответ 2

Я тоже столкнулся с этим, и после того, как я прочитал исходный код Gradle, я нашел решение, которое работает в Gradle 2.9.

Вместо options.addStringOption('Xdoclint:none', '-quiet') попробуйте options.addBooleanOption('Xdoclint:none', true). Это должно должным образом передать опцию -Xdoclint:none на базовый вызов javadoc и игнорировать ошибки при одновременном выпуске Javadoc. Я сделал это непосредственно в объявлении задачи javadoc, но он, вероятно, работал бы с использованием метода allprojects, который вы пытались сделать выше.

Ответ 3

Вот как я отключил его - в моем файле build.gradle я добавил:

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