如何使用 gradle 从 Javadoc 跳过自动生成的类

问题描述

一个 Android 库项目中,我使用 Gradle 脚本生成 Javadoc:

task androidJavadocs(type: Exec,dependsOn: buildJavadocsClasspath) {
  doFirst {

    executable = 'javadoc'

    args = [
        '-classpath',javadocsClasspath,'-sourcepath','./src/main/java','-subpackages','com.example.myproject','-d',javadocsDestinationDir,'-exclude','com.example.myproject.internal','-doctitle',project.getName() + " " + VERSION_NAME + " API",'-windowtitle',POM_NAME + " API",'-link',"http://docs.oracle.com/javase/8/docs/api/",'-Xdoclint:none','-quiet'
    ]
  }
}

问题是在为引用自动生成的类(如 BuildConfig 或 DaggerMyClientComponent)的类生成 javadoc 时,Javadoc 返回警告(Java 8)或错误(Java 11)

./src/main/java/com/example/myproject/MyClient.java:13: error: cannot find symbol
import com.example.myproject.internal.DaggerMyClientComponent;
                                              ^
  symbol:   class DaggerMyClientComponent
  location: package com.example.myproject.internal
./src/main/java/com/example/myproject/internal/storage/client/SdkVersionStorage.java:9: error: cannot find symbol
import com.example.myproject.BuildConfig;
                                     ^
  symbol:   class BuildConfig
  location: package com.example.myproject
./src/main/java/com/example/myproject/internal/utils/UserAgentHeader.java:8: error: cannot find symbol
import com.example.myproject.BuildConfig;
                                     ^
  symbol:   class BuildConfig
  location: package com.example.myproject

我不明白的一件事是两个错误来自内部类,这些内部类已经使用“exclude”参数从 javadoc 中排除。

最重要的是,我没有看到修复或抑制这些错误的选项。添加com.example.myproject.internal.DaggerMyClientComponent 这样的排除规则不起作用。

使用Android Studio生成Javadocs不是一个选项,我需要使用一个可以在CI(Bitrise)中使用的脚本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)