【发布时间】:2021-04-26 18:22:27
【问题描述】:
在一个 Android 库项目中,我使用 Gradle 脚本生成 Javadocs:
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) 中使用的脚本。
【问题讨论】:
-
你有什么运气吗?我正在遭受完全相同的问题。由于排除我的内部包裹而收到错误
标签: android gradle dagger-2 javadoc