问题描述
在一个 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 (将#修改为@)