aboutsummaryrefslogtreecommitdiff
path: root/dokka-subprojects/analysis-kotlin-symbols/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'dokka-subprojects/analysis-kotlin-symbols/README.md')
-rw-r--r--dokka-subprojects/analysis-kotlin-symbols/README.md18
1 files changed, 18 insertions, 0 deletions
diff --git a/dokka-subprojects/analysis-kotlin-symbols/README.md b/dokka-subprojects/analysis-kotlin-symbols/README.md
new file mode 100644
index 00000000..7c84ffc5
--- /dev/null
+++ b/dokka-subprojects/analysis-kotlin-symbols/README.md
@@ -0,0 +1,18 @@
+# Analysis: Kotlin symbols
+
+An internal symbols-based implementation for [analysis-kotlin-api](../analysis-kotlin-api). This implementation is
+also known as K2 or "the new compiler".
+
+Contains no stable public API and must not be used by anyone directly, only via [analysis-kotlin-api](../analysis-kotlin-api).
+
+Can be added as a runtime dependency by the runner.
+
+## Shadowing
+
+The `.jar` produced by this project shadows all dependencies. There are several reasons for it:
+
+1. Some of the artifacts Dokka depends on, like `com.jetbrains.intellij.java:java-psi`, are not
+ published to Maven Central, so the users would need to add custom repositories to their build scripts.
+2. There are many intertwining transitive dependencies of different versions, as well as direct copy-paste,
+ that can lead to runtime errors due to classpath conflicts, so it's best to let Gradle take care of
+ dependency resolution, and then pack everything into a single jar in a single place that can be tuned.