Как я могу создать Javadoc для своей библиотеки Android с помощью Dokka как для основного набора исходных кодов, так и дAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу создать Javadoc для своей библиотеки Android с помощью Dokka как для основного набора исходных кодов, так и д

Сообщение Anonymous »

Я постепенно перевожу свой библиотечный проект с Java на Kotlin. У меня есть требование предоставить Javadoc как для библиотеки, так и для тестов инструментов Android. Я больше не могу использовать Javadoc, поскольку он умирает, когда видит файл *.kt. Поэтому я обратился к Dokka.
Моя проблема в том, что я могу легко генерировать Javadoc с помощью Dokka, но только для основного набора исходных кодов. Но я не могу заставить его генерировать документацию для моих инструментальных тестов.
У меня есть следующая конфигурация в градиенте сборки библиотеки:
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)
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/646 ... the-main-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»