I'm receiving this error when trying to build my project with Spring Auto Restdocs amongst a decent amount of other Spring tools. Here's a link to the issue I created in the Auto Restdocs repository. https://github.com/ScaCap/spring-auto-restdocs/issues/235. Google only returns one semi-related item which resulted in a fix to the code.
Could you please provide a full stack trace? By running Gradle with --stacktrace option
Is this what you were looking for?
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':dokka'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:596)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.UncheckedException: java.lang.ClassNotFoundException: org.jetbrains.dokka.DokkaBootstrapImpl
at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:794)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:761)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
... 29 more
Caused by: java.lang.ClassNotFoundException: org.jetbrains.dokka.DokkaBootstrapImpl
at org.jetbrains.dokka.gradle.DokkaTask.generate(main.kt:283)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
... 42 more
* Get more help at https://help.gradle.org
BUILD FAILED in 4s
5 actionable tasks: 5 executed
Thank you! It's a bug on Dokka Gradle Plugin side, will fix
The problem lays at https://github.com/Kotlin/dokka/blob/master/runners/gradle-plugin/src/main/kotlin/main.kt#L189
This causes Dokka to use the only first file from provided fatJar class-path.
Hi,
We are evaluating Kotlin for use with Spring and have came across this issue. Is there a workaround we can use until this is fixed?
We are trying to compare this to our current Java/Maven equivalent.
Found such workaround:
repositories {
mavenCentral()
maven { url 'https://dl.bintray.com/kotlin/dokka' }
maven { url 'https://jitpack.io' }
}
configurations {
dokkaFatJar
}
dependencies {
dokkaFatJar "org.jetbrains.dokka:dokka-gradle-plugin:0.9.16"
dokkaFatJar "capital.scalable:spring-auto-restdocs-dokka-json:2.0.1"
}
apply plugin: 'org.jetbrains.dokka'
task repackDokka(type: Jar) {
destinationDir = file("$buildDir/dokka-repack")
baseName = "dokkaFatJarRepack"
from configurations.dokkaFatJar.collect { zipTree(it) }
}
dokka {
//.... more config
dependsOn repackDokka
dokkaFatJar = repackDokka.outputs.files.singleFile
outputFormat = "auto-restdocs-json"
//.... more config
}
This will pack custom Dokka fatjar locally, and then it will contain both custom-format classes & dokka ones
Hi there,
We are looking into using Spring Auto Rest Docs for a Spring + Kotlin project and have the same issue. Are there any new updates besides the suggested workaround.
Thanks,
Antoniya
@semoro This doesn't work with 0.10.1 Dokka version, there is no dokkaFatJar property anymore.
Do we need to use dokkaRuntime instead of dokkaFatJaror there is other way of doing it?
dependencies {
dokkaRuntime...
}
When I try it with dokkaRuntime I always get:
Caused by: org.jetbrains.dokka.Utilities.ServiceLookupException: No implementation with name my-cool-format found in category format
To reproduce you can just create dummy format name and point it to any existing FormatDescriptor classes. Pack that new format config into the fat jar and add as a dependency to dokkaRuntime.
This approach with dokkaRuntime based on docs here:
https://www.kotlinresources.com/library/dokka/
https://github.com/Kotlin/dokka
Most helpful comment
Found such workaround:
This will pack custom Dokka fatjar locally, and then it will contain both custom-format classes & dokka ones