Skip to content

Eignex/kbuild

Repository files navigation

Eignex

KBuild

Maven Central Build License

This repository is intended for internal use, but feel free to use however you want.


Overview

kbuild provides five main convention plugins:

  1. jvm: For pure Kotlin/JVM libraries. Includes Dokka, Kover, and testing defaults.
  2. kmp: For Kotlin Multiplatform projects. Sets up common testing and toolchains.
  3. cli: For Kotlin Multiplatform CLI applications. Wires JVM and native executables onto consumer-declared targets; no publishing. A releaseAssets task collects stripped native binaries (<name>-<version>-<os>-<arch>), the JVM dist zip, and a SHA256SUMS file into build/release-assets/ for upload to GitHub releases.
  4. publish: Standardized Maven Central publishing logic, including automated POM generation and GPG signing.
  5. lint: Shared Detekt configuration with Eignex-specific style suppressions.

Both publishing and linting plugins are loaded by either jvm and kmp plugins. So in practice you apply either jvm or kmp for libraries, or cli for applications. The cli plugin expects targets declared by the consumer and a eignexCli { mainClass = "..."; entryPoint = "..." } block for the JVM main class and Kotlin/Native entry point.

To configure for your own projects you will need to fork and publish your own version.

About

Build plugin for all our repos. Intended for internal use.

Resources

License

Stars

Watchers

Forks

Contributors

Languages