问题描述
我正在将图书馆项目从Java移到Kotlin。我有一个要求,我也需要为has库和Android工具测试提供Javadoc。看到* .kt文件时,它死了,我不再使用Javadoc。所以我转向了Dokka。
我的问题是我可以轻松地用Dokka生成Javadoc,但仅适用于主要源集。但是我无法为仪器测试生成docus。
我在库构建gradle中具有以下配置:
apply plugin: 'org.jetbrains.dokka'
...
dokkaJavadoc.configure {
dokkaSourceSets {
named("main") {
// Main source set conf
outputDirectory = file("dokkadoc/service-doc")
includes.from(files("dokka_modules_test.md"))
sourceRoots.from(file("src/main/java"))
}
named("androidTest") {
// Test source set conf
outputDirectory = file("dokkadoc/service-test-doc")
includes.from(files("dokka_modules_test.md"))
sourceRoots.from(file("src/androidTest/java"))
}
configureEach {
// Shared conf for all source sets
noAndroidSdkLink.set(false)
includeNonPublic.set(false)
skipEmptyPackages.set(true)
reportUndocumented.set(true)
skipDeprecated.set(false)
}
}
}
在根build.grade中,我导入:
buildscript {
..
ext.dokka_version = '1.4.10.2'
repositories {
..
}
dependencies {
classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
}
}
我在做什么错?还是我误解了,无法以这种方式生成单独的Javadocs?我是否必须为所有构建变体生成扩展任务,例如:
libraryVariants.all { variant ->
..
def variantDokkadoc = task("dokkadoc${variant.name.capitalize()}",type: org.jetbrains.dokka.gradle.DokkaTask) {
...
}
编辑: 似乎当我像这样为测试部分创建单独的任务时,它就完成了:
// Dokka task for Service tests
task dokkaJavadocTests(type: org.jetbrains.dokka.gradle.DokkaTask) {
dokkaSourceSets {
named("main") {
outputDirectory.set(file("dokkadoc/service-test-doc"))
includes.from(files("dokka_modules_test.md"))
sourceRoots.setFrom(file("src/main/java"))
sourceRoots.from(file("src/androidTest/java"))
noAndroidSdkLink.set(false)
includeNonPublic.set(false)
skipEmptyPackages.set(true)
reportUndocumented.set(true)
skipDeprecated.set(false)
}
}
}
出于某种原因,我不得不和
named("main")
否则它将忽略测试类。
此外,我仍然无法生成Javadoc版本,它会生成HTML版本。 如果我添加
outputFormat = "javadoc"
然后它只会忽略它
编辑2:
现在,我通过执行第二项测试并将它们都保持为HTML格式来解决了这个问题。例如:
// Main dokka task for the library
dokkaHtml.configure {
dokkaSourceSets {
named("main") {
// Main source set conf
outputDirectory.set(file("dokkadoc/${project.ext.versionNameDokkaDoc}"))
includes.from(files("dokka_modules_main.md"))
noAndroidSdkLink.set(false)
includeNonPublic.set(false)
skipEmptyPackages.set(true)
reportUndocumented.set(true)
skipDeprecated.set(false)
}
}
}
// Dokka task for the library tests
task dokkaHtmlTests(type: org.jetbrains.dokka.gradle.DokkaTask) {
dokkaSourceSets {
named("main") {
outputDirectory.set(file("dokkadoc/${project.ext.versionNameDokkaDocTests}"))
includes.from(files("dokka_modules_test.md"))
sourceRoots.setFrom(file("src/main/java"))
sourceRoots.from(file("src/androidTest/java"))
noAndroidSdkLink.set(false)
includeNonPublic.set(false)
skipEmptyPackages.set(true)
reportUndocumented.set(true)
skipDeprecated.set(false)
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)