An opinionated Kotlin library template designed to jumpstart your Kotlin library projects with ease. This template provides a robust and scalable foundation for library development, with built-in automation tools to guide you from initial setup to publishing and maintaining your library effortlessly.
- ⏩️ Quick Start: No complex setup required. Simply fork this template, adjust the settings, and start coding.
- 🧱 Modular Structure: Designed from the ground up to support splitting your library into multiple smaller libraries, enabling more granular access and flexibility for users of your project.
- 🌈 Powered by Kotlin Multiplatform: Offers full flexibility in choosing your target platforms
- 📦 Automated Publishing: Fully configured Gradle setup for publishing to Maven Central or other package repositories.
- 🗽 CI independent: Every crucial task like build, test, release, linting, coverage measurement and automatic dependency updates can be executed manually via Gradle tasks.
- 🔋 Ready to go: Everything you need to get started with your library included:
- Explicit API mode to enforce visibility to be specifically declared.
- Automatic versioning following Semantic Versioning principles.
- Gradle version catalog for easy and clean cross module dependency management.
- Gradle convention plugins for consistent and reusable project configuration.
- Automatic dependency version checks and updates via Gradle Versions Plugin.
- static code analysis and linting via detekt and ktlint.
- OSS Review Toolkit integration for automated license compliance checks.
- Testing setup and coverage reporting out of the box.
- 🤖 CI/CD Ready: Preconfigured GitHub Actions workflows for seamless builds, releases and maintenance.
- Build, test and release snapshot version on every push to main.
- One-Click publish to Maven Central with automatic versioning.
- Scheduled automatic version catalog update updates via PR by using gradle task.
Even though this template tries to reduce necessary manual steps as much as possible, there are still some things you need to do, since you can not inherit some settings from github template repository.
Please follow the initial setup guide to get started. It won't take more than a few minutes.
This repository is licensed under the MIT License.
With this template, you can focus on writing great code while the boilerplate tasks are taken care of. Happy coding! 🎉