diff --git a/.github/workflows/dokka-gh-pages.yml b/.github/workflows/dokka-gh-pages.yml
new file mode 100644
index 0000000..53c853c
--- /dev/null
+++ b/.github/workflows/dokka-gh-pages.yml
@@ -0,0 +1,61 @@
+name: Deploy the API documentation to GitHub Pages with Dokka
+
+on:
+ push:
+ branches: [ "plugins-release" ]
+ pull_request:
+ branches: [ "plugins-release" ]
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Setup Pages
+ uses: actions/configure-pages@v5
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v4
+ with:
+ java-version: "8"
+ distribution: "temurin"
+
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v4
+
+ - name: Build the distribution with Gradle Wrapper
+ run: ./gradlew :dokkaGeneratePublicationHtml
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: build/dokka/html/
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.github/workflows/kotlin-jvm-ci.yml b/.github/workflows/kotlin-jvm-ci.yml
new file mode 100644
index 0000000..f3135e8
--- /dev/null
+++ b/.github/workflows/kotlin-jvm-ci.yml
@@ -0,0 +1,45 @@
+name: CI
+
+on:
+ push:
+ branches: [ "*" ]
+# pull_request:
+# branches: [ "*" ]
+
+jobs:
+ check:
+
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK 8
+ uses: actions/setup-java@v4
+ with:
+ java-version: '8'
+ distribution: 'temurin'
+
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v4
+
+ - name: Check with Gradle Wrapper
+ run: ./gradlew check
+
+ dependency-submission:
+
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK 8
+ uses: actions/setup-java@v4
+ with:
+ java-version: '8'
+ distribution: 'temurin'
+
+ - name: Generate and submit dependency graph
+ uses: gradle/actions/dependency-submission@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..970e45b
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Change log
+
+["common-gradle-dependencies" change log](COMMON_GRADLE_DEPENDENCIES_CHANGELOG.md)
+
+["Gradle plugins" change log](PLUGINS_CHANGELOG.md)
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..da80987
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+shreckye@gmail.com.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
diff --git a/COMMON_GRADLE_DEPENDENCIES_CHANGELOG.md b/COMMON_GRADLE_DEPENDENCIES_CHANGELOG.md
new file mode 100644
index 0000000..8675ef2
--- /dev/null
+++ b/COMMON_GRADLE_DEPENDENCIES_CHANGELOG.md
@@ -0,0 +1,6 @@
+# "common-gradle-dependencies" change log
+
+## v0.8.0-20241016 / 2024-10-18
+
+* bump the dependency versions in CommonVersions to the latest compatible with Kotlin 2.0.10 as of Oct 16, 2024
+* add some dependencies and versions of "androidx" and "org.jetbrains.androidx"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..ca714df
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+# Contributing guidelines
+
+Hello, thank you for your interest in contributing to our project.
+
+## Issues and Discussions
+
+You are welcome to submit issues on bugs or feature requests. If you have questions, please ask them in GitHub Discussions.
+
+## Pull requests
+
+If you want to contribute to the code of our project, you are welcome to open pull requests. However, it's always a good idea to open a related issue or talk with us in Discussions first.
+
+## Development
+
+Please make sure you have a valid JDK installed. Some projects may require multiple JDKs of different versions. The JDK version we use can be found in the [GitHub Actions workflow files](.github/workflows).
+
+We recommend developing with IntelliJ IDEA. In IntelliJ IDEA, select the correct [Project SDK in Project Structure](https://www.jetbrains.com/help/idea/project-settings-and-structure.html#project-sdk) and it's recommended to set [Gradle JVM](https://www.jetbrains.com/help/idea/gradle-jvm-selection.html#jvm_settings) to "Project SDK".
+
+Run the `publishToMavenLocal` Gradle task to publish the libraries to your machine's Maven Local Repository so your projects can depend on the changes you have made, run `check` to ensure our limited number of tests pass.
+
+## Furthur notice
+
+We are currently a small team with limited effort. While we may not always implement your requested features, merge your pull requests, or do such things in time, you are always welcome to create your own fork and make any changes you like.
diff --git a/PLUGINS_CHANGELOG.md b/PLUGINS_CHANGELOG.md
new file mode 100644
index 0000000..21ce0a9
--- /dev/null
+++ b/PLUGINS_CHANGELOG.md
@@ -0,0 +1,18 @@
+# "Gradle plugins" change log
+
+## v0.7.0 / 2024-11-20
+
+* do not configure the signing DSL at all when the version is a snapshot in the `com.huanshankeji.sonatype-ossrh-publish` plugin, so `publishToMavenLocal` becomes significantly faster
+* add API documentation generated by Dokka hosted at
+* do not add any Maven repositories any more in plugins
+* add the Dokka convention plugins `com.huanshankeji.dokka.dokka-convention` and `com.huanshankeji.team.dokka.github-dokka-convention` to ease Dokka configuration
+* add CODE_OF_CONDUCT.md and CONTRIBUTING.md
+* use the Kotlin binary compatibility validator
+
+## v0.6.0 / 2024-10-18
+
+* remove the bootstrapping "common-gradle-dependencies" dependency, put the shared depdencies in `buildSrc` `DependencyVersions`, and generate versions for "common-gradle-dependencies" (see caf83246808b33bbb854bc486476758c73b9f398 for more details)
+* bump Kotlin to 2.0.10 and Compose Multiplatform to 1.7.0
+* refactor the `kotlin-multiplatform-jvm-and-js-browser-app-conventions` plugin into `kotlin-multiplatform-app-conventions-with-conventional-targets`
+* fix an error in `GenerateKotlinJsBrowserWebrootForVertxWebPlugin` that emerged with the new Kotlin version
+* add a `sparkJava17CompatibleJvmArgs` variable
diff --git a/README.md b/README.md
index a5b011b..f3d9d1c 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Huanshankeji's Gradle common code in Kotlin, mainly for common projects in Kotli
## Examples
-There are currently no docs or tutorials on how to use the plugins. See the build scripts in [kotlin-common](https://github.com/huanshankeji/kotlin-common) for examples.
+There are currently no docs or tutorials on how to use the plugins. [Check out the API documentation here.](https://huanshankeji.github.io/gradle-common/.) See the build scripts in [kotlin-common](https://github.com/huanshankeji/kotlin-common) for examples.
## Gradle version and Kotlin version
diff --git a/architecture-common-gradle-plugins/api/architecture-common-gradle-plugins.api b/architecture-common-gradle-plugins/api/architecture-common-gradle-plugins.api
new file mode 100644
index 0000000..6c9c584
--- /dev/null
+++ b/architecture-common-gradle-plugins/api/architecture-common-gradle-plugins.api
@@ -0,0 +1,224 @@
+public final class com/huanshankeji/DefaultMaterialWebFrontendConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/DefaultWebFrontendConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Default_material_web_frontend_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Default_web_frontend_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getExtension ()Lcom/huanshankeji/Default_web_frontend_conventions_gradle$Extension;
+ public final fun getGeneratedResourcesFile ()Ljava/io/File;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public abstract interface class com/huanshankeji/Default_web_frontend_conventions_gradle$Extension {
+ public abstract fun getHtmlGenerationProjectPath ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public abstract interface class com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin$Extension {
+ public abstract fun getIncludes ()Lorg/gradle/api/provider/ListProperty;
+ public abstract fun getWebFrontendProjectPath ()Lorg/gradle/api/provider/Property;
+ public abstract fun getWebRoot ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin$apply$1$1$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
+ public fun (Lkotlin/jvm/functions/Function1;)V
+ public final synthetic fun execute (Ljava/lang/Object;)V
+}
+
+public final class com/huanshankeji/KotlinJvmApplicationAppConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinJvmCommonAppConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinJvmLibraryAppConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformAppConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformAppConventionsWithConventionalTargetsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformJsBrowserAppConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_application_app_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_common_app_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_library_app_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_app_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_app_conventions_with_conventional_targets_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_js_browser_app_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/OptInsKt {
+ public static final fun defaultOptIns (Lorg/jetbrains/kotlin/gradle/plugin/LanguageSettingsBuilder;)V
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/CpuArchitecture : java/lang/Enum {
+ public static final field Aarch64 Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+ public static final field X8664 Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+ public final fun getIdentifier ()Ljava/lang/String;
+ public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+ public static fun values ()[Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/DefaultSupported {
+ public static final field INSTANCE Lcom/huanshankeji/jvm/native/osandarch/DefaultSupported;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/DefaultSupported$ArchsByOs {
+ public static final field INSTANCE Lcom/huanshankeji/jvm/native/osandarch/DefaultSupported$ArchsByOs;
+ public final fun getLinux ()Ljava/util/List;
+ public final fun getMacos ()Ljava/util/List;
+ public final fun getWindows ()Ljava/util/List;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/DefaultSupported$OsAndArchs {
+ public static final field INSTANCE Lcom/huanshankeji/jvm/native/osandarch/DefaultSupported$OsAndArchs;
+ public final fun getAll ()Ljava/util/List;
+ public final fun getAllFeatureVariantNames ()Ljava/util/List;
+ public final fun getFutureAll ()Ljava/util/List;
+ public final fun getLinux ()Ljava/util/List;
+ public final fun getMacos ()Ljava/util/List;
+ public final fun getWindows ()Ljava/util/List;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/FeatureVariantDependencyConfig {
+ public fun (Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;Ljava/lang/String;)V
+ public final fun component1 ()Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;
+ public final fun component2 ()Ljava/lang/String;
+ public final fun copy (Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;Ljava/lang/String;)Lcom/huanshankeji/jvm/native/osandarch/FeatureVariantDependencyConfig;
+ public static synthetic fun copy$default (Lcom/huanshankeji/jvm/native/osandarch/FeatureVariantDependencyConfig;Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;Ljava/lang/String;ILjava/lang/Object;)Lcom/huanshankeji/jvm/native/osandarch/FeatureVariantDependencyConfig;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getIdentifier ()Ljava/lang/String;
+ public final fun getOsAndArch ()Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/FeatureVariantsAndDependenciesKt {
+ public static final fun addDependenciesToFeatureVariantsWithIdentifiersInClassifiers (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static final fun addDependenciesToFeatureVariantsWithIdentifiersInClassifiers (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun addDependenciesToFeatureVariantsWithIdentifiersInClassifiers$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static synthetic fun addDependenciesToFeatureVariantsWithIdentifiersInClassifiers$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun addDependenciesToFeatureVariantsWithIdentifiersInNameSuffixes (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static final fun addDependenciesToFeatureVariantsWithIdentifiersInNameSuffixes (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun addDependenciesToFeatureVariantsWithIdentifiersInNameSuffixes$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static synthetic fun addDependenciesToFeatureVariantsWithIdentifiersInNameSuffixes$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun addDependencyToFeatureVariants (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;)V
+ public static final fun addDependencyWithFeatureVariantCapabilityDependenciesToOneConfiguration (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun addDependencyWithFeatureVariantCapabilityDependenciesToOneConfiguration$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun addDependencyWithFeatureVariantTransitiveCapabilityDependencies (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun addDependencyWithFeatureVariantTransitiveCapabilityDependencies$default (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun getCapabilityNotation (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static final fun getFeatureVariantName (Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;)Ljava/lang/String;
+ public static final fun registerDefaultSupportedFeatureVariants (Lorg/gradle/api/plugins/JavaPluginExtension;Lcom/huanshankeji/SourceSetType;)V
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/Os : java/lang/Enum {
+ public static final field Linux Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public static final field Macos Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public static final field Windows Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public final fun getIdentifier ()Ljava/lang/String;
+ public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public static fun values ()[Lcom/huanshankeji/jvm/native/osandarch/Os;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/OsAndArch {
+ public fun (Lcom/huanshankeji/jvm/native/osandarch/Os;Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;)V
+ public final fun component1 ()Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public final fun component2 ()Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+ public final fun copy (Lcom/huanshankeji/jvm/native/osandarch/Os;Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;)Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;
+ public static synthetic fun copy$default (Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;Lcom/huanshankeji/jvm/native/osandarch/Os;Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;ILjava/lang/Object;)Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;
+ public fun equals (Ljava/lang/Object;)Z
+ public final fun getArch ()Lcom/huanshankeji/jvm/native/osandarch/CpuArchitecture;
+ public final fun getCamelCaseIdentifier ()Ljava/lang/String;
+ public final fun getKebabCaseIdentifier ()Ljava/lang/String;
+ public final fun getOs ()Lcom/huanshankeji/jvm/native/osandarch/Os;
+ public fun hashCode ()I
+ public fun toString ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/OsAndArchKt {
+ public static final fun getCurrentOsAndArch ()Lcom/huanshankeji/jvm/native/osandarch/OsAndArch;
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/RegisterDefaultSupportedFeatureVariantsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/jvm/native/osandarch/Register_default_supported_feature_variants_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getExtension ()Lcom/huanshankeji/jvm/native/osandarch/Register_default_supported_feature_variants_gradle$Extension;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public abstract interface class com/huanshankeji/jvm/native/osandarch/Register_default_supported_feature_variants_gradle$Extension {
+ public abstract fun getSourceSetType ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/spark/SparkKt {
+ public static final fun getSparkJava17CompatibleJvmArgs ()Ljava/util/List;
+}
+
diff --git a/architecture-common-gradle-plugins/build.gradle.kts b/architecture-common-gradle-plugins/build.gradle.kts
index 279561e..8faa1fc 100644
--- a/architecture-common-gradle-plugins/build.gradle.kts
+++ b/architecture-common-gradle-plugins/build.gradle.kts
@@ -2,11 +2,6 @@ plugins {
`aligned-version-plugin-conventions`
}
-repositories {
- mavenLocal()
- maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
-}
-
dependencies {
implementation(project(":kotlin-common-gradle-plugins"))
implementation("org.jetbrains.kotlin:compose-compiler-gradle-plugin:${DependencyVersions.kotlin}")
diff --git a/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin.kt b/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin.kt
index a1bee16..0a932b7 100644
--- a/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin.kt
+++ b/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/GenerateKotlinJsBrowserWebrootForVertxWebPlugin.kt
@@ -5,10 +5,9 @@ import org.gradle.api.Project
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Copy
+import org.gradle.api.tasks.Sync
import org.gradle.api.tasks.util.PatternFilterable
-import org.gradle.kotlin.dsl.create
-import org.gradle.kotlin.dsl.named
-import org.gradle.kotlin.dsl.register
+import org.gradle.kotlin.dsl.*
class GenerateKotlinJsBrowserWebrootForVertxWebPlugin : Plugin {
override fun apply(project: Project): Unit = project.run {
@@ -16,27 +15,25 @@ class GenerateKotlinJsBrowserWebrootForVertxWebPlugin : Plugin {
afterEvaluate {
val frontendProject = project(extension.webFrontendProjectPath.get())
- val jsBrowserDistributionTask = frontendProject.tasks.named("jsBrowserDistribution")
+ val jsBrowserDistribution by frontendProject.tasks.getting(Copy::class)
/*val jsBrowserWebpack by lazy {
tasks.getByPath(
extension.webFrontendProjectPath.get() +
if (extension.production.get()) ":jsBrowserProductionWebpack" else ":jsBrowserDevelopmentWebpack"
) as KotlinWebpack
}*/
- val copyJsBrowserDistributionToResourcesWebroot = "copyJsBrowserDistributionToResourcesWebroot"
val browserDistributionResourcesDirectory = layout.buildDirectory.get().dir("browserDistributionResources")
- tasks.register(copyJsBrowserDistributionToResourcesWebroot) {
- dependsOn(jsBrowserDistributionTask)
- // TODO I didn't find a way to get this path using the DSL, so there may be a bug if this path is customized.
- from(frontendProject.layout.buildDirectory.get().dir("dist/js/productionExecutable"))
+ val syncJsBrowserDistributionToResourcesWebroot by tasks.registering(Sync::class) {
+ //dependsOn(jsBrowserDistribution)
+ from(jsBrowserDistribution)
//if (extension.production.get())
extension.includes.getOrNull()?.let { include(it) }
into(browserDistributionResourcesDirectory.dir(extension.webRoot.getOrElse("webroot")))
}
tasks.named("processResources") {
- dependsOn(copyJsBrowserDistributionToResourcesWebroot)
+ dependsOn(syncJsBrowserDistributionToResourcesWebroot)
}
/*
When running a Maven publish task, the error occurs if this line is not added:
@@ -44,7 +41,7 @@ class GenerateKotlinJsBrowserWebrootForVertxWebPlugin : Plugin {
TODO This is probably a bug. remove this line when it's fixed.
*/
- tasks.named("sourcesJar") { dependsOn("copyJsBrowserDistributionToResourcesWebroot") }
+ tasks.named("sourcesJar") { dependsOn(syncJsBrowserDistributionToResourcesWebroot) }
sourceSets.main { resources.srcDir(browserDistributionResourcesDirectory) }
}
diff --git a/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/default-web-frontend-conventions.gradle.kts b/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/default-web-frontend-conventions.gradle.kts
index a07123d..cfea229 100644
--- a/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/default-web-frontend-conventions.gradle.kts
+++ b/architecture-common-gradle-plugins/src/main/kotlin/com/huanshankeji/default-web-frontend-conventions.gradle.kts
@@ -12,12 +12,6 @@ interface Extension {
val extension = extensions.create("defaultWebFrontendConventions")
-repositories {
- google()
- mavenCentral()
- maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
-}
-
kotlin {
js {
browser {
diff --git a/build.gradle.kts b/build.gradle.kts
index f2ba312..091069c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,6 +2,11 @@ tasks.wrapper {
distributionType = Wrapper.DistributionType.ALL
}
+plugins {
+ id("org.jetbrains.dokka")
+ id("org.jetbrains.kotlinx.binary-compatibility-validator") version DependencyVersions.binaryCompatibilityValidator
+}
+
evaluationDependsOnChildren()
task("publishPluginProjectPlugins") {
group = "plugin portal"
@@ -9,3 +14,17 @@ task("publishPluginProjectPlugins") {
val pluginProjects = subprojects.filter { it.name.endsWith("plugins") }
pluginProjects.forEach { dependsOn(it.tasks.named("publishPlugins")) }
}
+
+
+dependencies {
+ /*
+ "common-gradle-dependencies" not added because its releases are published in a separate branch, and also because its API documentation is not important
+ "huanshankeji-team-gradle-plugins" not added because it's renamed and more cumbersome to configure, and also because it's only used by us
+ */
+ listOf(
+ "kotlin-common-gradle-plugins",
+ "architecture-common-gradle-plugins",
+ ).forEach {
+ dokka(project(":$it"))
+ }
+}
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 75e9850..db36dd1 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -29,7 +29,7 @@ dependencies {
implementation(kotlin("gradle-plugin", "2.0.10"))
implementation("org.gradle.kotlin:gradle-kotlin-dsl-plugins:4.5.0") // This version has to be used for Gradle 8.10.
- implementation("com.gradle.publish:plugin-publish-plugin:1.2.1")
+ implementation("com.gradle.publish:plugin-publish-plugin:1.3.0")
// This is a bootstrapping dependency (cross-version self-dependency). Try not to update its version unless necessary.
implementation("com.huanshankeji.team:gradle-plugins:0.3.0") { exclude("org.jetbrains.kotlin") }
@@ -38,4 +38,6 @@ dependencies {
// This is also a bootstrapping dependency.
implementation("com.huanshankeji:common-gradle-dependencies:0.7.1-20240314-boostrap") { exclude("org.jetbrains.kotlin") }
*/
+
+ implementation("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0-Beta")
}
diff --git a/buildSrc/src/main/kotlin/VersionsAndDependencies.kt b/buildSrc/src/main/kotlin/VersionsAndDependencies.kt
index 8add859..54b74db 100644
--- a/buildSrc/src/main/kotlin/VersionsAndDependencies.kt
+++ b/buildSrc/src/main/kotlin/VersionsAndDependencies.kt
@@ -9,13 +9,15 @@ object DependencyVersions {
val kotlin = "2.0.10" // compatible with the compose version below
val composeMultiplatform = "1.7.0"
val kotlinxBenchmark = "0.4.11"
+ val dokka = "2.0.0-Beta"
+ val binaryCompatibilityValidator = "0.16.3"
}
-val alignedPluginVersion = "0.6.0"
+val alignedPluginVersion = "0.7.0"
// "x.y.z" indicates the version of the way of organizing the code,
// and the date indicates the version when the dependency versions are updated.
-val commonGradleDependenciesVersion = "0.8.0-20241016-SNAPSHOT"
+val commonGradleDependenciesVersion = "0.8.0-20241129-SNAPSHOT"
// This is the source dependency version. There is another build source dependency in "buildSrc/build.gradle.kts".
val pluginProjectSourceDependentStableCommonGradleDependenciesVersion = "0.8.0-20241016".apply {
diff --git a/buildSrc/src/main/kotlin/aligned-version-plugin-conventions.gradle.kts b/buildSrc/src/main/kotlin/aligned-version-plugin-conventions.gradle.kts
index b8b0bbe..174453d 100644
--- a/buildSrc/src/main/kotlin/aligned-version-plugin-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/aligned-version-plugin-conventions.gradle.kts
@@ -2,10 +2,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
plugins {
id("conventions")
+ id("aligned-version-plugin-version")
+ id("dokka-convention")
}
-version = alignedPluginVersion
-
dependencies {
implementation("com.huanshankeji:common-gradle-dependencies:$pluginProjectSourceDependentStableCommonGradleDependenciesVersion")
}
diff --git a/buildSrc/src/main/kotlin/aligned-version-plugin-version.gradle.kts b/buildSrc/src/main/kotlin/aligned-version-plugin-version.gradle.kts
new file mode 100644
index 0000000..195f1b6
--- /dev/null
+++ b/buildSrc/src/main/kotlin/aligned-version-plugin-version.gradle.kts
@@ -0,0 +1,3 @@
+// extracted into a separate script so the version can be set before `dokka-convention`
+
+version = alignedPluginVersion
diff --git a/buildSrc/src/main/kotlin/conventions.gradle.kts b/buildSrc/src/main/kotlin/conventions.gradle.kts
index a830671..d7a893e 100644
--- a/buildSrc/src/main/kotlin/conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/conventions.gradle.kts
@@ -8,7 +8,7 @@ plugins {
}
repositories {
- mavenLocal() // TODO comment out when not needed
+ //mavenLocal() // comment out when not needed
gradlePluginPortal()
}
diff --git a/buildSrc/src/main/kotlin/dokka-convention.gradle.kts b/buildSrc/src/main/kotlin/dokka-convention.gradle.kts
new file mode 100644
index 0000000..aa0a2c0
--- /dev/null
+++ b/buildSrc/src/main/kotlin/dokka-convention.gradle.kts
@@ -0,0 +1,13 @@
+plugins {
+ id("org.jetbrains.dokka")
+}
+
+dokka {
+ dokkaSourceSets.all {
+ sourceLink {
+ val projectRelativePath = projectDir.relativeTo(rootProject.projectDir)
+ remoteUrl("https://github.com/huanshankeji/gradle-common/blob/plugins-v${version}/$projectRelativePath")
+ remoteLineSuffix.set("#L")
+ }
+ }
+}
diff --git a/common-gradle-dependencies/api/common-gradle-dependencies.api b/common-gradle-dependencies/api/common-gradle-dependencies.api
new file mode 100644
index 0000000..994cd88
--- /dev/null
+++ b/common-gradle-dependencies/api/common-gradle-dependencies.api
@@ -0,0 +1,394 @@
+public final class com/huanshankeji/CommonDependencies {
+ public fun ()V
+ public fun (Lcom/huanshankeji/CommonVersions;)V
+ public synthetic fun (Lcom/huanshankeji/CommonVersions;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getAndroidx ()Lcom/huanshankeji/CommonDependencies$Androidx;
+ public final fun getArrow ()Lcom/huanshankeji/CommonDependencies$Arrow;
+ public final fun getExposed ()Lcom/huanshankeji/CommonDependencies$Exposed;
+ public final fun getJetbrainsAndroidx ()Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx;
+ public final fun getKotest ()Lcom/huanshankeji/CommonDependencies$Kotest;
+ public final fun getKotlinCommon ()Lcom/huanshankeji/CommonDependencies$KotlinCommon;
+ public final fun getKotlinx ()Lcom/huanshankeji/CommonDependencies$Kotlinx;
+ public final fun getKtor ()Lcom/huanshankeji/CommonDependencies$Ktor;
+ public final fun getOrgJunit ()Lcom/huanshankeji/CommonDependencies$OrgJunit;
+ public final fun getSlf4j ()Lcom/huanshankeji/CommonDependencies$Slf4j;
+ public final fun getTestContainers ()Lcom/huanshankeji/CommonDependencies$TestContainers;
+ public final fun getVersions ()Lcom/huanshankeji/CommonVersions;
+ public final fun getVertx ()Lcom/huanshankeji/CommonDependencies$Vertx;
+ public final fun postgreSql (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun postgreSql$default (Lcom/huanshankeji/CommonDependencies;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Androidx {
+ public static final field Companion Lcom/huanshankeji/CommonDependencies$Androidx$Companion;
+ public fun (Lcom/huanshankeji/CommonVersions$Androidx;)V
+ public final fun getActivity ()Lcom/huanshankeji/CommonDependencies$Androidx$Activity;
+ public final fun getCompose ()Lcom/huanshankeji/CommonDependencies$Androidx$Compose;
+}
+
+public final class com/huanshankeji/CommonDependencies$Androidx$Activity : com/huanshankeji/CommonDependencies$Androidx$Subgroup {
+ public fun (Ljava/lang/String;)V
+ public final fun compose (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun compose$default (Lcom/huanshankeji/CommonDependencies$Androidx$Activity;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public fun getDefaultVersion ()Ljava/lang/String;
+ public fun getSubgroupName ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Androidx$Companion {
+ public final fun getPackage ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Androidx$Compose {
+ public fun (Lcom/huanshankeji/CommonVersions$Androidx$Compose;)V
+ public final fun getUi ()Lcom/huanshankeji/CommonDependencies$Androidx$Compose$Ui;
+}
+
+public abstract interface class com/huanshankeji/CommonDependencies$Androidx$Compose$Subgroup : com/huanshankeji/CommonDependencies$SubgroupWithNameInArtifact {
+ public fun getGroupPrefix ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Androidx$Compose$Ui : com/huanshankeji/CommonDependencies$Androidx$Compose$Subgroup {
+ public fun (Ljava/lang/String;)V
+ public fun getDefaultVersion ()Ljava/lang/String;
+ public fun getSubgroupName ()Ljava/lang/String;
+}
+
+public abstract interface class com/huanshankeji/CommonDependencies$Androidx$Subgroup : com/huanshankeji/CommonDependencies$SubgroupWithNameInArtifact {
+ public fun getGroupPrefix ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Arrow {
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$Arrow;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Arrow;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Exposed {
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$Exposed;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Exposed;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$JetbrainsAndroidx {
+ public fun (Lcom/huanshankeji/CommonVersions$JetbrainsAndroidx;)V
+ public final fun getLifecycle ()Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Lifecycle;
+ public final fun getNavigation ()Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Navigation;
+}
+
+public final class com/huanshankeji/CommonDependencies$JetbrainsAndroidx$Lifecycle : com/huanshankeji/CommonDependencies$JetbrainsAndroidx$Subgroup {
+ public fun (Ljava/lang/String;)V
+ public fun getDefaultVersion ()Ljava/lang/String;
+ public fun getSubgroupName ()Ljava/lang/String;
+ public final fun viewmodel (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun viewmodel$default (Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Lifecycle;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun viewmodelCompose (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun viewmodelCompose$default (Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Lifecycle;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$JetbrainsAndroidx$Navigation : com/huanshankeji/CommonDependencies$JetbrainsAndroidx$Subgroup {
+ public fun (Ljava/lang/String;)V
+ public final fun compose (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun compose$default (Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Navigation;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public fun getDefaultVersion ()Ljava/lang/String;
+ public fun getSubgroupName ()Ljava/lang/String;
+ public final fun runtime (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun runtime$default (Lcom/huanshankeji/CommonDependencies$JetbrainsAndroidx$Navigation;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public abstract interface class com/huanshankeji/CommonDependencies$JetbrainsAndroidx$Subgroup : com/huanshankeji/CommonDependencies$SubgroupWithNameInArtifact {
+ public fun getGroupPrefix ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotest {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Kotest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun property (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun property$default (Lcom/huanshankeji/CommonDependencies$Kotest;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$KotlinCommon {
+ public final fun arrow (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun arrow$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun coroutines (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun coroutines$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun exposed (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun exposed$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun getKtor ()Lcom/huanshankeji/CommonDependencies$KotlinCommon$Ktor;
+ public final fun getVertx ()Lcom/huanshankeji/CommonDependencies$KotlinCommon$Vertx;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun net (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun net$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun reflect (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun reflect$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun serialization (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun serialization$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun vertx (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun vertx$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun web (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun web$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$KotlinCommon$Ktor {
+ public final fun client (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun client$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon$Ktor;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon$Ktor;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$KotlinCommon$Vertx {
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon$Vertx;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun withContextReceivers (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun withContextReceivers$default (Lcom/huanshankeji/CommonDependencies$KotlinCommon$Vertx;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotlinx {
+ public final fun datetime (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun datetime$default (Lcom/huanshankeji/CommonDependencies$Kotlinx;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getBenchmark ()Lcom/huanshankeji/CommonDependencies$Kotlinx$Benchmark;
+ public final fun getCoroutines ()Lcom/huanshankeji/CommonDependencies$Kotlinx$Coroutines;
+ public final fun getHtml ()Lcom/huanshankeji/CommonDependencies$Kotlinx$Html;
+ public final fun getSerialization ()Lcom/huanshankeji/CommonDependencies$Kotlinx$Serialization;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotlinx$Benchmark {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Benchmark;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun runtime (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun runtime$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Benchmark;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotlinx$Coroutines {
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Coroutines;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Coroutines;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun test (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun test$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Coroutines;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotlinx$Html {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Html;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Kotlinx$Serialization {
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Serialization;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun json (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun json$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Serialization;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Serialization;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun protobuf (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun protobuf$default (Lcom/huanshankeji/CommonDependencies$Kotlinx$Serialization;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Ktor {
+ public final fun getClient ()Lcom/huanshankeji/CommonDependencies$Ktor$Client;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Ktor;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Ktor$Client {
+ public final fun core (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun core$default (Lcom/huanshankeji/CommonDependencies$Ktor$Client;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Ktor$Client;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$OrgJunit {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun getJupiter ()Lcom/huanshankeji/CommonDependencies$OrgJunit$Jupiter;
+ public final fun platformBom (Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;)Lorg/gradle/api/artifacts/Dependency;
+ public static synthetic fun platformBom$default (Lcom/huanshankeji/CommonDependencies$OrgJunit;Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/Dependency;
+}
+
+public final class com/huanshankeji/CommonDependencies$OrgJunit$Jupiter {
+ public final fun apiWithVersion (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun apiWithVersion$default (Lcom/huanshankeji/CommonDependencies$OrgJunit$Jupiter;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun apiWithoutVersion ()Ljava/lang/String;
+ public final fun engineWithVersion (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun engineWithVersion$default (Lcom/huanshankeji/CommonDependencies$OrgJunit$Jupiter;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun engineWithoutVersion ()Ljava/lang/String;
+ public final fun moduleWithVersion (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun moduleWithVersion$default (Lcom/huanshankeji/CommonDependencies$OrgJunit$Jupiter;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun moduleWithoutVersion (Ljava/lang/String;)Ljava/lang/String;
+ public final fun withVersion (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun withVersion$default (Lcom/huanshankeji/CommonDependencies$OrgJunit$Jupiter;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun withoutVersion ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$Slf4j {
+ public final fun api (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun api$default (Lcom/huanshankeji/CommonDependencies$Slf4j;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$Slf4j;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun simple (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun simple$default (Lcom/huanshankeji/CommonDependencies$Slf4j;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public abstract interface class com/huanshankeji/CommonDependencies$SubgroupWithNameInArtifact {
+ public abstract fun getDefaultVersion ()Ljava/lang/String;
+ public abstract fun getGroupPrefix ()Ljava/lang/String;
+ public abstract fun getSubgroupName ()Ljava/lang/String;
+ public fun module (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun module$default (Lcom/huanshankeji/CommonDependencies$SubgroupWithNameInArtifact;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonDependencies$TestContainers {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun getJunitJupiter ()Ljava/lang/String;
+ public final fun getPostgreSql ()Ljava/lang/String;
+ public final fun getTestContainers ()Ljava/lang/String;
+ public final fun moduleWithVersion (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun moduleWithVersion$default (Lcom/huanshankeji/CommonDependencies$TestContainers;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun moduleWithoutVersion (Ljava/lang/String;)Ljava/lang/String;
+ public final fun platformBom (Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;)Lorg/gradle/api/artifacts/Dependency;
+ public static synthetic fun platformBom$default (Lcom/huanshankeji/CommonDependencies$TestContainers;Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/Dependency;
+}
+
+public final class com/huanshankeji/CommonDependencies$Vertx {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun moduleWithVersion (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun moduleWithVersion$default (Lcom/huanshankeji/CommonDependencies$Vertx;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+ public final fun moduleWithoutVersion (Ljava/lang/String;)Ljava/lang/String;
+ public final fun platformStackDepchain (Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;)Lorg/gradle/api/artifacts/Dependency;
+ public static synthetic fun platformStackDepchain$default (Lcom/huanshankeji/CommonDependencies$Vertx;Lorg/gradle/api/artifacts/dsl/DependencyHandler;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/Dependency;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies {
+ public fun (Lcom/huanshankeji/CommonVersions;)V
+ public final fun getComposeMultiplatform ()Lcom/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform;
+ public final fun getKotlin ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlin;
+ public final fun getKotlinx ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlinx;
+ public final fun getVersions ()Lcom/huanshankeji/CommonVersions;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform {
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun getGradlePlugin ()Lcom/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform$GradlePlugin;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform$GradlePlugin {
+ public fun (Lcom/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform;)V
+ public final fun applyPluginWithVersion (Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public static synthetic fun applyPluginWithVersion$default (Lcom/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform$GradlePlugin;Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public final fun applyPluginWithoutVersion (Lorg/gradle/plugin/use/PluginDependenciesSpec;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public final fun pluginProject (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun pluginProject$default (Lcom/huanshankeji/CommonGradleClasspathDependencies$ComposeMultiplatform$GradlePlugin;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$Kotlin {
+ public final fun getGroup ()Ljava/lang/String;
+ public final fun getPlugin ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin;
+ public final fun getSerializationPlugin ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin$Serialization;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin {
+ public final fun getSerialization ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin$Serialization;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin$Serialization {
+ public final fun applyPluginWithVersion (Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public static synthetic fun applyPluginWithVersion$default (Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlin$Plugin$Serialization;Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public final fun applyPluginWithoutVersion (Lorg/gradle/plugin/use/PluginDependenciesSpec;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun getModuleName ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$Kotlinx {
+ public final fun getBenchmark ()Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlinx$Benchmark;
+}
+
+public final class com/huanshankeji/CommonGradleClasspathDependencies$Kotlinx$Benchmark {
+ public fun (Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlinx;)V
+ public final fun applyPluginWithVersion (Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public static synthetic fun applyPluginWithVersion$default (Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlinx$Benchmark;Lorg/gradle/plugin/use/PluginDependenciesSpec;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/plugin/use/PluginDependencySpec;
+ public final fun getDefaultVersion ()Ljava/lang/String;
+ public final fun pluginProject (Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun pluginProject$default (Lcom/huanshankeji/CommonGradleClasspathDependencies$Kotlinx$Benchmark;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonGradleDependenciesDummyPluginPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/CommonVersions {
+ public fun ()V
+ public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/huanshankeji/CommonVersions$Androidx;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/huanshankeji/CommonVersions$Androidx;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getAndroidx ()Lcom/huanshankeji/CommonVersions$Androidx;
+ public final fun getArrow ()Ljava/lang/String;
+ public final fun getComposeMultiplatform ()Ljava/lang/String;
+ public final fun getExposed ()Ljava/lang/String;
+ public final fun getJetBrainsAndroidx ()Lcom/huanshankeji/CommonVersions$JetbrainsAndroidx;
+ public final fun getKotest ()Ljava/lang/String;
+ public final fun getKotlin ()Ljava/lang/String;
+ public final fun getKotlinCommon ()Ljava/lang/String;
+ public final fun getKotlinxBenchmark ()Ljava/lang/String;
+ public final fun getKotlinxCoroutines ()Ljava/lang/String;
+ public final fun getKotlinxDatetime ()Ljava/lang/String;
+ public final fun getKotlinxHtml ()Ljava/lang/String;
+ public final fun getKotlinxSerialization ()Ljava/lang/String;
+ public final fun getKtor ()Ljava/lang/String;
+ public final fun getOrgJunit ()Ljava/lang/String;
+ public final fun getPostgreSql ()Ljava/lang/String;
+ public final fun getSlf4j ()Ljava/lang/String;
+ public final fun getTestContainers ()Ljava/lang/String;
+ public final fun getVertx ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonVersions$Androidx {
+ public fun ()V
+ public fun (Ljava/lang/String;Lcom/huanshankeji/CommonVersions$Androidx$Compose;)V
+ public synthetic fun (Ljava/lang/String;Lcom/huanshankeji/CommonVersions$Androidx$Compose;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getActivity ()Ljava/lang/String;
+ public final fun getCompose ()Lcom/huanshankeji/CommonVersions$Androidx$Compose;
+}
+
+public final class com/huanshankeji/CommonVersions$Androidx$Compose {
+ public fun ()V
+ public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getCommon ()Ljava/lang/String;
+ public final fun getCompiler ()Ljava/lang/String;
+ public final fun getMaterial3 ()Ljava/lang/String;
+ public final fun getMaterial3Adaptive ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/CommonVersions$JetbrainsAndroidx {
+ public fun ()V
+ public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public final fun getComposeMultiplatform ()Ljava/lang/String;
+ public final fun getLifecycle ()Ljava/lang/String;
+ public final fun getNavigation ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/Common_gradle_dependencies_dummy_plugin_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/KotlinxDependencyExtensionsKt {
+ public static final fun kotlinx (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static synthetic fun kotlinx$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+}
+
diff --git a/common-gradle-dependencies/src/main/kotlin/com/huanshankeji/CommonVersions.kt b/common-gradle-dependencies/src/main/kotlin/com/huanshankeji/CommonVersions.kt
index a010b6c..6169c00 100644
--- a/common-gradle-dependencies/src/main/kotlin/com/huanshankeji/CommonVersions.kt
+++ b/common-gradle-dependencies/src/main/kotlin/com/huanshankeji/CommonVersions.kt
@@ -10,7 +10,8 @@ class CommonVersions(
val kotlinxSerialization: String = "1.7.1", // "1.7.2" and "1.7.3" use Kotlin 2.0.20 and seem to cause problems with Kotlin 2.0.10 builds.
val kotlinxDatetime: String = "0.6.1",
val kotlinxBenchmark: String = GeneratedVersions.kotlinxBenchmark,
- val exposed: String = "0.53.0", // "0.54.0" deprecates the old DSL APIs as errors while we still depend on them.
+ // TODO `kotlinxIo`
+ val exposed: String = "0.56.0",
val ktor: String = "2.3.12", // "3.0.0" uses Kotlin 2.0.20 too.
val androidx: Androidx = Androidx(),
diff --git a/gradle.properties b/gradle.properties
index 6e2c210..860f258 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,3 +2,5 @@
#kotlin.mpp.stability.nowarn=true
# More memory is needed to build "architecture-common-gradle-plugins" since Kotlin 2.0.0
org.gradle.jvmargs=-Xmx2G
+# for Dokka
+org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
diff --git a/huanshankeji-team-gradle-plugins/api/gradle-plugins.api b/huanshankeji-team-gradle-plugins/api/gradle-plugins.api
new file mode 100644
index 0000000..17b85f6
--- /dev/null
+++ b/huanshankeji-team-gradle-plugins/api/gradle-plugins.api
@@ -0,0 +1,71 @@
+public final class com/huanshankeji/team/ConstantsKt {
+ public static final field HUANSHANKEJI_IN_LOWERCASE Ljava/lang/String;
+}
+
+public final class com/huanshankeji/team/DefaultGithubPackagesMavenPublishPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/team/Default_github_packages_maven_publish_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/team/GithubPackagesMavenKt {
+ public static final fun repositoriesAddTeamGithubPackagesMavenRegistry (Lorg/gradle/api/Project;Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/team/GithubPackagesMavenPublishPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/team/Github_packages_maven_publish_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/team/MavenPomKt {
+ public static final fun Shreck Ye (Lorg/gradle/api/publish/maven/MavenPomDeveloperSpec;)V
+ public static final fun pomForTeamDefaultOpenSource (Lorg/gradle/api/publish/maven/MavenPublication;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
+ public static synthetic fun pomForTeamDefaultOpenSource$default (Lorg/gradle/api/publish/maven/MavenPublication;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+}
+
+public final class com/huanshankeji/team/WithGroupPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/team/With_group_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/team/dokka/GithubDokkaConventionPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/team/dokka/Github_dokka_convention_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public final field $$result Lcom/huanshankeji/team/dokka/Github_dokka_convention_gradle$GithubDokkaConventionExtension;
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun get$$result ()Lcom/huanshankeji/team/dokka/Github_dokka_convention_gradle$GithubDokkaConventionExtension;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public abstract interface class com/huanshankeji/team/dokka/Github_dokka_convention_gradle$GithubDokkaConventionExtension {
+ public abstract fun getCommitOrTag ()Lorg/gradle/api/provider/Property;
+ public abstract fun getRepositoryName ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/team/github/GithubKt {
+ public static final fun defaultRepositoryName (Lorg/gradle/api/Project;)Ljava/lang/String;
+ public static final fun defaultRootProjectGithubRepositoryUrl (Lorg/gradle/api/Project;)Ljava/lang/String;
+ public static final fun githubRepositoryUrl (Ljava/lang/String;)Ljava/lang/String;
+}
+
diff --git a/huanshankeji-team-gradle-plugins/build.gradle.kts b/huanshankeji-team-gradle-plugins/build.gradle.kts
index 9861042..2822e26 100644
--- a/huanshankeji-team-gradle-plugins/build.gradle.kts
+++ b/huanshankeji-team-gradle-plugins/build.gradle.kts
@@ -24,5 +24,11 @@ gradlePlugin {
"default-github-packages-maven-publish",
"GitHub Packages Maven publish (to Huanshankeji team's repository) with default conventions"
)
+
+ scriptConventionsPlugin(
+ "dokka.github-dokka-convention",
+ "Dokka convention plugin for projects on GitHub",
+ "Please apply this plugin after setting the project version."
+ )
}
}
diff --git a/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/GitHubPackagesMaven.kt b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/GithubPackagesMaven.kt
similarity index 100%
rename from huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/GitHubPackagesMaven.kt
rename to huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/GithubPackagesMaven.kt
diff --git a/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/MavenPom.kt b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/MavenPom.kt
index 0665e93..8c9f0bb 100644
--- a/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/MavenPom.kt
+++ b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/MavenPom.kt
@@ -1,6 +1,7 @@
package com.huanshankeji.team
import com.huanshankeji.pomForDefaultOpenSourceWithApacheLicense20OnGitHub
+import com.huanshankeji.team.github.defaultRootProjectGithubRepositoryUrl
import org.gradle.api.Project
import org.gradle.api.publish.maven.MavenPomDeveloperSpec
import org.gradle.api.publish.maven.MavenPublication
@@ -9,7 +10,7 @@ import org.gradle.api.publish.maven.MavenPublication
fun MavenPublication.pomForTeamDefaultOpenSource(
project: Project,
nameArg: String, descriptionArg: String,
- gitProjectPageUrl: String = "https://github.com/huanshankeji/${project.rootProject.name}",
+ gitProjectPageUrl: String = project.defaultRootProjectGithubRepositoryUrl(),
gitUrl: String = "$gitProjectPageUrl.git", scmConnection: String = "scm:git:$gitUrl",
developersBlock: MavenPomDeveloperSpec.() -> Unit
) =
diff --git a/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/dokka/github-dokka-convention.gradle.kts b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/dokka/github-dokka-convention.gradle.kts
new file mode 100644
index 0000000..968e945
--- /dev/null
+++ b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/dokka/github-dokka-convention.gradle.kts
@@ -0,0 +1,31 @@
+// TODO consider moving/extracting this plugin out of this "team" module
+
+package com.huanshankeji.team.dokka
+
+import com.huanshankeji.team.github.defaultRepositoryName
+import com.huanshankeji.team.github.githubRepositoryUrl
+
+plugins {
+ id("com.huanshankeji.dokka.dokka-convention")
+}
+
+interface GithubDokkaConventionExtension {
+ val repositoryName: Property
+ val commitOrTag: Property
+}
+
+extensions.create("githubDokkaConvention").apply {
+ repositoryName.convention(defaultRepositoryName())
+ commitOrTag.convention("v${version}")
+
+ val sourceLinkRemoteUrlRoot = repositoryName.flatMap { repositoryName ->
+ val repositoryUrl = githubRepositoryUrl(repositoryName)
+ commitOrTag.map { commitOrTag ->
+ "$repositoryUrl/blob/$commitOrTag"
+ }
+ }
+
+ dokkaConvention {
+ this.sourceLinkRemoteUrlRoot.set(sourceLinkRemoteUrlRoot)
+ }
+}
diff --git a/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/github/Github.kt b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/github/Github.kt
new file mode 100644
index 0000000..45099a1
--- /dev/null
+++ b/huanshankeji-team-gradle-plugins/src/main/kotlin/com/huanshankeji/team/github/Github.kt
@@ -0,0 +1,12 @@
+package com.huanshankeji.team.github
+
+import org.gradle.api.Project
+
+fun githubRepositoryUrl(repositoryName: String) =
+ "https://github.com/huanshankeji/$repositoryName"
+
+fun Project.defaultRepositoryName() =
+ rootProject.name
+
+fun Project.defaultRootProjectGithubRepositoryUrl() =
+ githubRepositoryUrl(defaultRepositoryName())
diff --git a/kotlin-common-gradle-plugins/api/kotlin-common-gradle-plugins.api b/kotlin-common-gradle-plugins/api/kotlin-common-gradle-plugins.api
new file mode 100644
index 0000000..81ac83c
--- /dev/null
+++ b/kotlin-common-gradle-plugins/api/kotlin-common-gradle-plugins.api
@@ -0,0 +1,348 @@
+public final class com/huanshankeji/ConcatenatedProjectNamesKt {
+ public static final fun cpnProject (Lorg/gradle/api/artifacts/dsl/DependencyHandler;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/ProjectDependency;
+ public static final fun cpnProject (Lorg/jetbrains/kotlin/gradle/plugin/KotlinDependencyHandler;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/ProjectDependency;
+ public static synthetic fun cpnProject$default (Lorg/gradle/api/artifacts/dsl/DependencyHandler;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/ProjectDependency;
+ public static synthetic fun cpnProject$default (Lorg/jetbrains/kotlin/gradle/plugin/KotlinDependencyHandler;Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/ProjectDependency;
+ public static final fun getConcatenatedProjectNamePath (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static final fun getConcatenatedProjectNamePath (Lorg/gradle/api/Project;Ljava/lang/String;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/FeatureVariantsKt {
+ public static final fun addDependencyToFeatureVariants (Lorg/gradle/kotlin/dsl/DependencyHandlerScope;Ljava/util/List;Ljava/lang/String;Ljava/lang/Object;)V
+ public static final fun isValidFeatureVariantName (Ljava/lang/String;)Z
+ public static final fun registerFeatureVariantWithNewSourceSet (Lorg/gradle/api/plugins/JavaPluginExtension;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun registerFeatureVariantWithNewSourceSet$default (Lorg/gradle/api/plugins/JavaPluginExtension;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun registerFeatureVariantWithSourceSet (Lorg/gradle/api/plugins/JavaPluginExtension;Ljava/lang/String;Lorg/gradle/api/tasks/SourceSet;)V
+}
+
+public final class com/huanshankeji/GenerateKotlinSourcesKt {
+ public static final fun generateKotlinSources (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+ public static synthetic fun generateKotlinSources$default (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)V
+ public static final fun generateKotlinVersion (Lorg/gradle/api/Project;Ljava/lang/String;)V
+ public static final fun generateRootProjectName (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/GithubPackagesMavenPublishPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public abstract interface class com/huanshankeji/GithubPackagesMavenPublishPlugin$Extension {
+ public abstract fun getOwner ()Lorg/gradle/api/provider/Property;
+ public abstract fun getRepository ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/GithubPackagesMavenRegistryKt {
+ public static final fun githubPackagesMavenRegistrySetUrlAndCredentials (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;Ljava/lang/String;Ljava/lang/String;)V
+ public static final fun publishing (Lorg/gradle/api/Project;Lorg/gradle/api/Action;)V
+ public static final fun publishingRepositoriesAddGithubPackagesMavenRepository (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+ public static synthetic fun publishingRepositoriesAddGithubPackagesMavenRepository$default (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V
+ public static final fun repositoriesAddGithubPackagesMavenRegistry (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/GitlabPackageRegistryMavenKt {
+ public static final field GITLAB_HOST Ljava/lang/String;
+ public static final fun gitlabGroupLevelMavenRepository (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static synthetic fun gitlabGroupLevelMavenRepository$default (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static final fun gitlabInstanceLevelMavenRepository (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static synthetic fun gitlabInstanceLevelMavenRepository$default (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static final fun gitlabMavenRepository (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static synthetic fun gitlabMavenRepository$default (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static final fun gitlabProjectLevelMavenRepository (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+ public static synthetic fun gitlabProjectLevelMavenRepository$default (Lorg/gradle/api/Project;Lorg/gradle/api/artifacts/dsl/RepositoryHandler;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/gradle/api/artifacts/repositories/MavenArtifactRepository;
+}
+
+public final class com/huanshankeji/GitlabProjectLevelMavenEndpointPublishPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public abstract interface class com/huanshankeji/GitlabProjectLevelMavenEndpointPublishPlugin$Extension {
+ public abstract fun getHost ()Lorg/gradle/api/provider/Property;
+ public abstract fun getProjectId ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/GradleKotlinExtensionsKt {
+ public static final fun getSourceSets (Lorg/gradle/api/Project;)Lorg/gradle/api/tasks/SourceSetContainer;
+ public static final fun main (Lorg/gradle/api/tasks/SourceSetContainer;Lkotlin/jvm/functions/Function1;)Lorg/gradle/api/NamedDomainObjectProvider;
+}
+
+public final class com/huanshankeji/GradleKotlinExtensionsKt$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
+ public fun (Lkotlin/jvm/functions/Function1;)V
+ public final synthetic fun execute (Ljava/lang/Object;)V
+}
+
+public abstract interface annotation class com/huanshankeji/InternalApi : java/lang/annotation/Annotation {
+}
+
+public final class com/huanshankeji/JvmIntegrationTestPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/JvmTestCommonFeatureVariantPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Jvm_integration_test_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getIntTestImplementation ()Lorg/gradle/api/artifacts/Configuration;
+ public final fun getIntegrationTest ()Lorg/gradle/api/tasks/testing/Test;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Jvm_test_common_feature_variant_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getTestCommon ()Ljava/lang/String;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/KotlinJvmLibraryMavenPublishConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinJvmLibrarySonatypeOssrhPublishConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformConventionalTargetsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformJsBrowserConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformMavenPublishConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/KotlinMultiplatformSonatypeOssrhPublishConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_library_maven_publish_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_library_maven_publish_conventions_gradle$3$1$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
+ public fun (Lkotlin/jvm/functions/Function1;)V
+ public final synthetic fun execute (Ljava/lang/Object;)V
+}
+
+public final class com/huanshankeji/Kotlin_jvm_library_sonatype_ossrh_publish_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_conventional_targets_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_js_browser_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_maven_publish_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_sonatype_ossrh_publish_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getJavadocJar ()Lorg/gradle/api/tasks/TaskProvider;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/Kotlin_multiplatform_sonatype_ossrh_publish_conventions_gradle$2$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
+ public fun (Lkotlin/jvm/functions/Function1;)V
+ public final synthetic fun execute (Ljava/lang/Object;)V
+}
+
+public final class com/huanshankeji/MavenPomKt {
+ public static final fun pomForDefaultOpenSourceWithApacheLicense20OnGitHub (Lorg/gradle/api/publish/maven/MavenPublication;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
+ public static synthetic fun pomForDefaultOpenSourceWithApacheLicense20OnGitHub$default (Lorg/gradle/api/publish/maven/MavenPublication;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+ public static final fun setUpForDefaultOpenSourceWithApacheLicense20OnGitHub (Lorg/gradle/api/publish/maven/MavenPom;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
+ public static synthetic fun setUpForDefaultOpenSourceWithApacheLicense20OnGitHub$default (Lorg/gradle/api/publish/maven/MavenPom;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
+}
+
+public final class com/huanshankeji/MavenPublishConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+ public final fun getPublishing (Lorg/gradle/api/Project;)Lorg/gradle/api/publish/PublishingExtension;
+}
+
+public abstract class com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig {
+}
+
+public final class com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig$Custom : com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig {
+ public fun (Ljava/lang/String;)V
+ public final fun getArtifactId ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig$DefaultUnchanged : com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig {
+ public static final field INSTANCE Lcom/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig$DefaultUnchanged;
+}
+
+public final class com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig$SubprojectNameConcatenated : com/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig {
+ public static final field INSTANCE Lcom/huanshankeji/MavenPublishConventionsPlugin$ArtifactIdConfig$SubprojectNameConcatenated;
+}
+
+public abstract class com/huanshankeji/MavenPublishConventionsPlugin$Extension {
+ public fun ()V
+ public abstract fun getArtifactIdConfig ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/MavenPublishConventionsPlugin$apply$1$1$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action {
+ public fun (Lkotlin/jvm/functions/Function1;)V
+ public final synthetic fun execute (Ljava/lang/Object;)V
+}
+
+public final class com/huanshankeji/NamingConventionsKt {
+ public static final fun camelCaseConcat (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+ public static final fun camelCaseToKebabCase (Ljava/lang/String;)Ljava/lang/String;
+ public static final fun capitalizeFirstChar (Ljava/lang/String;)Ljava/lang/String;
+ public static final fun getCamelCaseCharRegex ()Lkotlin/text/Regex;
+ public static final fun getCamelCaseRegex ()Lkotlin/text/Regex;
+ public static final fun kebabCaseConcat (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/NexusStagingPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Nexus_staging_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/ProjectNamesKt {
+ public static final fun getDefaultFullNameForPublishing (Lorg/gradle/api/Project;)Ljava/lang/String;
+ public static final fun getDefaultPrefixForPublishing (Lorg/gradle/api/Project;)Ljava/lang/String;
+ public static final fun getFullNameForFileSystem (Lorg/gradle/api/Project;)Ljava/lang/String;
+ public static final fun getFullNameWithRootProjectNameForFileSystem (Lorg/gradle/api/Project;)Ljava/lang/String;
+}
+
+public final class com/huanshankeji/SnapshotAndReleaseVersionsKt {
+ public static final fun isSnapshotVersion (Lorg/gradle/api/Project;)Z
+}
+
+public final class com/huanshankeji/SonatypeOssrhPublishPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/Sonatype_ossrh_publish_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun isSnapshotVersion ()Z
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/SourceFile {
+ public fun (Ljava/lang/String;Ljava/lang/String;)V
+ public final fun getContent ()Ljava/lang/String;
+ public final fun getFilePath ()Ljava/lang/String;
+}
+
+public final class com/huanshankeji/SourceSetConfig {
+ public static final field Companion Lcom/huanshankeji/SourceSetConfig$Companion;
+ public fun (Lcom/huanshankeji/SourceSetConfig$Type;Ljava/lang/String;Ljava/util/List;)V
+ public final fun getDependents ()Ljava/util/List;
+ public final fun getName ()Ljava/lang/String;
+ public final fun getType ()Lcom/huanshankeji/SourceSetConfig$Type;
+}
+
+public final class com/huanshankeji/SourceSetConfig$Companion {
+ public final fun getMain ()Lcom/huanshankeji/SourceSetConfig;
+}
+
+public final class com/huanshankeji/SourceSetConfig$Type : java/lang/Enum {
+ public static final field Existing Lcom/huanshankeji/SourceSetConfig$Type;
+ public static final field New Lcom/huanshankeji/SourceSetConfig$Type;
+ public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/SourceSetConfig$Type;
+ public static fun values ()[Lcom/huanshankeji/SourceSetConfig$Type;
+}
+
+public final class com/huanshankeji/SourceSetType : java/lang/Enum {
+ public static final field Main Lcom/huanshankeji/SourceSetType;
+ public static final field RegisterSeparate Lcom/huanshankeji/SourceSetType;
+ public static fun valueOf (Ljava/lang/String;)Lcom/huanshankeji/SourceSetType;
+ public static fun values ()[Lcom/huanshankeji/SourceSetType;
+}
+
+public final class com/huanshankeji/VersionsAndDependenciesKt {
+ public static final fun getCommonDependencies ()Lcom/huanshankeji/CommonDependencies;
+ public static final fun getCommonVersions ()Lcom/huanshankeji/CommonVersions;
+}
+
+public abstract interface class com/huanshankeji/benchmark/KotlinxBenchmarkConventionsExtension {
+ public abstract fun getSourceSetType ()Lorg/gradle/api/provider/Property;
+}
+
+public final class com/huanshankeji/benchmark/KotlinxBenchmarkConventionsExtensionKt {
+ public static final fun createKotlinxBenchmarkConventionsExtension (Lorg/gradle/api/plugins/ExtensionContainer;)Lcom/huanshankeji/benchmark/KotlinxBenchmarkConventionsExtension;
+}
+
+public final class com/huanshankeji/benchmark/KotlinxBenchmarkJvmConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/benchmark/KotlinxBenchmarkMultiplatformConventionsPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/benchmark/Kotlinx_benchmark_jvm_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getExtension ()Lcom/huanshankeji/benchmark/KotlinxBenchmarkConventionsExtension;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/benchmark/Kotlinx_benchmark_multiplatform_conventions_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public final class com/huanshankeji/dokka/DokkaConventionPlugin : org/gradle/api/Plugin {
+ public fun ()V
+ public synthetic fun apply (Ljava/lang/Object;)V
+ public fun apply (Lorg/gradle/api/Project;)V
+}
+
+public final class com/huanshankeji/dokka/Dokka_convention_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript {
+ public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V
+ public final fun getExtension ()Lcom/huanshankeji/dokka/Dokka_convention_gradle$DokkaConventionExtension;
+ public static final fun main ([Ljava/lang/String;)V
+}
+
+public abstract interface class com/huanshankeji/dokka/Dokka_convention_gradle$DokkaConventionExtension {
+ public abstract fun getSourceLinkRemoteUrlRoot ()Lorg/gradle/api/provider/Property;
+}
+
diff --git a/kotlin-common-gradle-plugins/build.gradle.kts b/kotlin-common-gradle-plugins/build.gradle.kts
index 409188d..ee8c2ea 100644
--- a/kotlin-common-gradle-plugins/build.gradle.kts
+++ b/kotlin-common-gradle-plugins/build.gradle.kts
@@ -7,6 +7,7 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-benchmark-plugin:${DependencyVersions.kotlinxBenchmark}")
implementation(kotlin("allopen", DependencyVersions.kotlin))
+ implementation("org.jetbrains.dokka:dokka-gradle-plugin:${DependencyVersions.dokka}")
testImplementation(kotlin("test"))
}
@@ -95,5 +96,10 @@ gradlePlugin {
"Applies the kotlinx-benchmark and `allopen` plugins and adds the koltinx-benchmark dependencies."
)
}
+
+ scriptConventionsPlugin(
+ "dokka.dokka-convention",
+ "Dokka convention plugin"
+ )
}
}
diff --git a/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/dokka/dokka-convention.gradle.kts b/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/dokka/dokka-convention.gradle.kts
new file mode 100644
index 0000000..0bc679b
--- /dev/null
+++ b/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/dokka/dokka-convention.gradle.kts
@@ -0,0 +1,21 @@
+package com.huanshankeji.dokka
+
+plugins {
+ id("org.jetbrains.dokka")
+}
+
+interface DokkaConventionExtension {
+ val sourceLinkRemoteUrlRoot: Property
+}
+
+val extension = extensions.create("dokkaConvention")
+
+dokka {
+ dokkaSourceSets.all {
+ sourceLink {
+ val projectRelativePath = projectDir.relativeTo(rootProject.projectDir)
+ remoteUrl(extension.sourceLinkRemoteUrlRoot.map { "$it/$projectRelativePath" })
+ remoteLineSuffix.set("#L")
+ }
+ }
+}
\ No newline at end of file
diff --git a/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/sonatype-ossrh-publish.gradle.kts b/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/sonatype-ossrh-publish.gradle.kts
index 91720da..4ca3b81 100644
--- a/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/sonatype-ossrh-publish.gradle.kts
+++ b/kotlin-common-gradle-plugins/src/main/kotlin/com/huanshankeji/sonatype-ossrh-publish.gradle.kts
@@ -5,19 +5,23 @@ plugins {
signing
}
-signing {
- isRequired = false
- sign(publishing.publications)
-}
+val isSnapshotVersion = isSnapshotVersion()
+
+if (!isSnapshotVersion)
+ signing {
+ isRequired = false
+ sign(publishing.publications)
+ }
// wrapped in `afterEvaluate` because the project version may be set after applying this plugin, on which whether to choose the release URL or the snapshot URL depends
afterEvaluate {
- val isSnapshotVersion = isSnapshotVersion()
-
+ //old approach that makes `publishToMavenLocal` significantly slower when the signing key is configured in `~/.gradle/gradle.properties`
+ /*
// see: https://docs.gradle.org/current/userguide/signing_plugin.html#sec:conditional_signing
tasks.withType().configureEach {
onlyIf { !isSnapshotVersion }
}
+ */
publishing.repositories.maven {
name = "SonatypeOssrh"
diff --git a/settings.gradle.kts b/settings.gradle.kts
index dcfbee8..c472c0c 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -14,3 +14,11 @@ include("huanshankeji-team-gradle-plugins")
project(":huanshankeji-team-gradle-plugins").name = "gradle-plugins"
include("architecture-common-gradle-plugins")
include("common-gradle-dependencies")
+
+// for Dokka
+@Suppress("UnstableApiUsage")
+dependencyResolutionManagement {
+ repositories {
+ mavenCentral()
+ }
+}