使用Gradle抑制Android项目中的Javadoc错误

ar7v8xwq  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(156)

我遇到了一些javadoc警告的问题。当我在GitHub仓库中推送我的提交并创建一个pull请求时,Lint Code Base测试运行,然后在控制台中显示很多方法和类没有Javadoc注解,如下所示:
缺少Javadoc注解。[JavadocVariable]
我需要抑制所有的Javadoc警告,但我不能,我尝试了不同的方法。我的研究把我带到了很多关于这个主题的线程,但我没有找到任何解决方案来解决我的问题。
我试着补充:

tasks.withType(Javadoc) {
    failOnError false
    options.addStringOption('Xdoclint:none', '-quiet')
    options.addBooleanOption('Xdoclint:none', true)
    options.compilerArgs << "-Xdoclint:none"
}

x

tasks.withType(Javadoc).all { enabled = false }
subprojects {
    tasks.withType(Javadoc).all { enabled = false }
}
subprojects {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xdoclint:none"
    }
}

的数据
但是没有人能阻止javadoc警告。
所有这些代码行都在allprojects方法中。
在这一点上,我的build.gradle看起来像这样:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.1'
        classpath 'com.google.gms:google-services:4.3.10'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
plugins {
    id 'com.android.application' version '7.3.0' apply false
    id 'com.android.library' version '7.3.0' apply false
}

allprojects {
    repositories {
        // Check that you have the following line (if not, add it):
        google() // Google's Maven repository
        jcenter()
    }

    //
    tasks.withType(Javadoc) {
        failOnError false
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addBooleanOption('Xdoclint:none', true)
        options.compilerArgs << "-Xdoclint:none"
    }

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

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

    subprojects {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xdoclint:none"
        }
    }
}


=更新=
正如第一个答案所说和建议的那样,我在项目的根目录下创建了一个checkstyle.xml文件。checkstyle.xml的内容如下:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name="Checker">
    <module name="TreeWalker">
        <!-- Javadoc -->
        <!-- Configuración para permitir comentarios Javadoc faltantes en JavadocVariable -->
        <module name="JavadocVariable">
            <property name="allowMissingJavadoc" value="true" />
        </module>

        <!-- Configuración para permitir comentarios Javadoc faltantes en JavadocMethod -->
        <module name="JavadocMethod">
            <property name="allowMissingJavadoc" value="true" />
        </module>

        <!-- Configuración para permitir comentarios Javadoc faltantes en JavadocPackage -->
        <module name="JavadocPackage">
            <property name="allowMissingJavadoc" value="true" />
        </module>

        <!-- Formatting -->
        <module name="LineLength">
            <property name="max" value="160" />
        </module>
    </module>
</module>


并在gradle添加了这一点:
插件:

plugins {
    id 'checkstyle'
}


任务:

checkstyle {
    toolVersion = '8.42'
    configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
}
checkstyleMain {
    source = 'src/main/java'
}
checkstyleTest {
    source = 'src/test/java'
}


但是在GitHub操作的Lint代码库运行后仍然显示警告。

toe95027

toe950271#

问题是这些都不是来自javadoc linter的警告,所以配置或禁用javadoc工具对你没有帮助。消息 “Missing a Javadoc comment. [JavadocVariable]" 是一个CheckStyle警告,所以你运行了CheckStyle,它的配置文件被配置为要求所有变量(实际上是字段)都使用javadoc。
鉴于CheckStyle未在Gradle文件中列出,您可能从GitHub Action运行它(或者您的build.gradle未完成)。
据我所知,JavadocVariable 规则在默认情况下是不启用的,所以要禁用它,请从CheckStyle XML配置中删除它。
基于CheckStyle documentation,规则看起来像这样:

<module name="Checker">
  <module name="TreeWalker">
    <module name="JavadocVariable"/>
  </module>
</module>

字符串
搜索name="JavadocVariable"并删除特定的模块可能是处理此问题的最佳方法。

相关问题