
Supports module-to-module communication by routing to interfaces via URI strings. Facilitates screen navigation, leveraging annotations and reflection for seamless integration and routing.
Base on 0xZhangKe/KRouter
The plugin follows declared production api, implementation, compileOnly and
runtimeOnly buckets, including Kotlin Multiplatform main source sets and Android
variants. Test and test-fixture buckets, KSP/tooling classpaths, and Kotlin SwiftPM
lock-file metadata configurations are excluded. Shared dependencies are configured
once; a genuine source dependency cycle fails with a project path.
Use JDK 21, matching CI:
./gradlew :plugin:test :compiler:test :test-app:jvmTest -PskipSigning
./gradlew publishToMavenLocal -PskipSigningIn a consuming build, put mavenLocal() in both plugin and dependency repositories,
use the same KRouter version for plugin/core/compiler, and apply the Gradle plugin
with targetInjectProjectName and optional krouter.collect.annotations.
The plugin's TestKit tests exercise the real configuration lifecycle; compiler and
test-app tests additionally check generated code and cross-module runtime behavior.
Bump krouter_version, update CHANGELOG.md, run all tests, and validate the local
publication in a consuming project before pushing. Pushes run CI. A published GitHub
Release (or a manual Publish workflow dispatch) triggers Maven Central publication;
a push alone does not publish. The release workflow signs with repository secrets.
Copyright 2023 ZhangKe Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Base on 0xZhangKe/KRouter
The plugin follows declared production api, implementation, compileOnly and
runtimeOnly buckets, including Kotlin Multiplatform main source sets and Android
variants. Test and test-fixture buckets, KSP/tooling classpaths, and Kotlin SwiftPM
lock-file metadata configurations are excluded. Shared dependencies are configured
once; a genuine source dependency cycle fails with a project path.
Use JDK 21, matching CI:
./gradlew :plugin:test :compiler:test :test-app:jvmTest -PskipSigning
./gradlew publishToMavenLocal -PskipSigningIn a consuming build, put mavenLocal() in both plugin and dependency repositories,
use the same KRouter version for plugin/core/compiler, and apply the Gradle plugin
with targetInjectProjectName and optional krouter.collect.annotations.
The plugin's TestKit tests exercise the real configuration lifecycle; compiler and
test-app tests additionally check generated code and cross-module runtime behavior.
Bump krouter_version, update CHANGELOG.md, run all tests, and validate the local
publication in a consuming project before pushing. Pushes run CI. A published GitHub
Release (or a manual Publish workflow dispatch) triggers Maven Central publication;
a push alone does not publish. The release workflow signs with repository secrets.
Copyright 2023 ZhangKe Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.