Comments (5)
I can confirm the sources seem to work correctly:
from dokkatoo.
I'm currently playing around with migrating to Dokkatoo in cashapp/redwood but we're seeing the same issue with 1.2.0. My WIP branch is here: cashapp/redwood#936
hi @chrisbanes, I can take a look at the branch. Can you open a new issue please? Ideally with a small reproducer.
At first glance I can see that the project is using the legacy method of applying plugins, which might mean that Dokkatoo can't automatically pick up the classpath of a module (which is performed in DokkatooKotlinAdapter).
You can look in the generated my-subproject/build/dokka-config/html/dokka_parameters.json
file in each subproject to see what classpath has been picked up.
For a quick-fix you could try the workaround mentioned in #44 (comment) and manually add files to the classpath
// build.gradle.kts
dokkatoo {
dokkatooSourceSets.configureEach {
// workaround for https://github.com/adamko-dev/dokkatoo/issues/44
classpath.from(configurations.compileClasspath.map { it.incoming.artifactView { lenient(true) }.artifacts.artifactFiles })
}
}
from dokkatoo.
Thanks, I've taken a look and I think that Dokkatoo that this error is just one symptom.
DokkatooKotlinAdapter
is supposed to automatically convert any Kotlin Multiplatform source sets to an equivalent Dokka source set, but when I look in ./build/dokka-config/html/dokka_parameters.json
the platform type for all source sets is common
, while it should be jvm
or js
etc. The classpath doesn't seem to be shared across the source sets either.
I'll try to refactor DokkatooKotlinAdapter
but I found it extremely difficult to do workaround Gradle's Configuration Cache restrictions.
For now, you can try and manually construct the source sets. I've not done this before, and there's no example, so it will need some experimentation. Here's a start:
dokkatoo {
dokkatooSourceSets.clear() // clear the bugged source sets generated by Dokkatoo
dokkatooSourceSets.create("common") {
displayName.set("Common")
analysisPlatform.set(KotlinPlatform.Common)
sourceRoots.from("src/commonMain/kotlin")
val dokkatooCommonClasspath by configurations.registering {
isCanBeResolved = true
isCanBeConsumed = false
extendsFrom(
configurations.getByName("commonMainImplementation"),
configurations.getByName("commonMainCompileOnly"),
configurations.getByName("commonMainRuntimeOnly"),
configurations.getByName("commonMainApi"),
)
}
classpath.from(dokkatooCommonClasspath.map { it.incoming.artifacts.artifactFiles })
}
dokkatooSourceSets.create("jvm") {
displayName.set("JVM")
analysisPlatform.set(KotlinPlatform.JVM)
sourceRoots.from("src/jvmMain/kotlin")
val dokkatooJvmClasspath by configurations.registering {
isCanBeResolved = true
isCanBeConsumed = false
extendsFrom(
configurations.getByName("jvmCompileClasspath"),
configurations.getByName("jvmRuntimeClasspath"),
)
}
classpath.from(dokkatooJvmClasspath.map { it.incoming.artifacts.artifactFiles })
}
}
from dokkatoo.
@EdricChan03 I've refactored the Kotlin Multiplatform configuration, and added some tests to verify that this problem doesn't occur in the same projects. Please could you check if 1.2.0-SNAPSHOT resolves the issue? If you could also check #51 at the same time, it would be much appreciated!
from dokkatoo.
I'm currently playing around with migrating to Dokkatoo in cashapp/redwood but we're seeing the same issue with 1.2.0. My WIP branch is here: cashapp/redwood#936
from dokkatoo.
Related Issues (20)
- ExternalDocumentationLinks: Use name as convention value for url HOT 2
- Use Gradle to download & cache package lists HOT 2
- Sub-modules don't inherit the footer message for HTML Dokka docs HOT 2
- Update Dokka to 1.9.0 HOT 3
- README for examples HOT 1
- Error: "Could not determine the dependencies of task ':<project>:dokkatooGenerateModuleHtml'." HOT 12
- Empty publication when Kotlin plugin applied to subprojects, but not to root project (with apply=false) HOT 9
- Dependency Dashboard
- Update default Dokka version to 1.9.10 HOT 2
- Warning "Configuration 'dokkatooHtmlResolver' was resolved during configuration time" in Android projects HOT 1
- Add warning when trying to generate a HTML publication with modules, but `all-modules-page-plugin` is not in the plugin classpath
- Consider using different Gradle attributes for `dokkatooHtmlPublicationPluginClasspathApiOnlyConsumable` HOT 9
- How to fix OOM HOT 6
- Compilation error only happening during Dokka build HOT 24
- feature request: support multiple aggregations at the root for the same project HOT 1
- Using dokkatoo in precompiled script plugins causes "Internal Dokkatoo API" warnings HOT 4
- Dokka plugin support HOT 4
- Allow applying Dokkatoo to pure Java projects
- Published Javadocs are empty HOT 2
- Generated Dokka HTML docs are missing sub-project dependencies HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dokkatoo.