Skip to content

Commit c050843

Browse files
committed
chore: README.md update
1 parent 67a2090 commit c050843

File tree

2 files changed

+67
-22
lines changed

2 files changed

+67
-22
lines changed

README.md

Lines changed: 65 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,59 @@
66
[![OpenJDK Version][java_img]][java_url]
77
[![Kotlin release][kt_img]][kt_url]
88

9-
Common project and
10-
settings [gradle convention plugin](https://docs.gradle.org/current/samples/sample_convention_plugins.html) to bootstrap
11-
Kotlin JVM & Multiplatform projects.
9+
Gradle project and settings [plugins](https://docs.gradle.org/current/samples/sample_convention_plugins.html) to
10+
simplify the bootstrapping of `Kotlin/Java` projects targeting JVM, Multiplatform (Native/JS/Wasm), and GraalVM
11+
native-image. The plugin will take care of configuring most common build tasks, including:
12+
13+
* Maven central publishing for artifacts & Container image (`Jib`) of Kotlin/Java projects
14+
* Custom repo (`GHCR`) for artifacts and container images
15+
* Code coverage supporting JVM, Kotlin Multiplatform projects.
16+
* Project Versioning (`SemVer`) based on Git tags
17+
* Code Formatting to enforce consistent code style
18+
* Artifact Signing
19+
* Java/Kotlin Toolchains configuration
20+
* Target platforms (`JVM`, `JS`, `WASM`, `Native`) configuration
21+
* Testing & Reports
22+
* `KSP` & Annotation processors
23+
* GraalVM Native Image
24+
* Documentation (`JavaDoc`, `Dokka`)
25+
* Benchmarking (`JMH`)
26+
* API binary compatibility validation
27+
* Deprecated API scanning (using `jdeprscan`)
28+
* Builds truly executable JAR files
29+
* Build config generation
30+
* Version catalog to control artifact versions and build configurations.
31+
* Automatic configuration of essential dependencies such as:
32+
* `kotlinx-datetime`
33+
* `kotlinx-coroutines`
34+
* `ktor-client`,
35+
* `kotlinx-serialization`
36+
* `kotlinx-io`
37+
* `Logging`
38+
* Automatic configuration of `compiler plugins` like
39+
* `redacted`
40+
* `kopy`
41+
* `power-assert`
42+
* `atomicfu`
43+
* And other common build tasks.
44+
45+
This plugin helps you focus on writing code, not configuring your build. It provides a solid foundation for your
46+
Kotlin/Java projects, handling the boilerplate and common tasks so you can get started quickly.
47+
48+
## Dev Env Setup
49+
50+
* Install Java 21 or later
1251

13-
### Install Java 21
52+
```bash
53+
$ curl -s "https://get.sdkman.io" | bash
54+
$ sdk i java 21.0.6-zulu
55+
```
1456

15-
```bash
16-
$ curl -s "https://get.sdkman.io" | bash
17-
$ sdk i java 21.0.6-zulu
18-
```
57+
* Import the Gradle project. The initial sync may take some time as it downloads all dependencies.
58+
59+
> [!IMPORTANT]
60+
> For a better, faster experience, use the latest version of [IntelliJ IDEA](https://www.jetbrains.com/idea/download).
61+
> Upgrade now!
1962
2063
### Build & Testing
2164

@@ -53,18 +96,18 @@ The next version will be based on the semantic version scope (`major`, `minor`,
5396

5497
### Published Plugins
5598

56-
| **Gradle Plugin ID** | **Version** |
57-
|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
58-
| `dev.suresh.plugin.root` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.root/dev.suresh.plugin.root.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
59-
| `dev.suresh.plugin.common` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.common/dev.suresh.plugin.common.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
60-
| `dev.suresh.plugin.graalvm` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.graalvm/dev.suresh.plugin.graalvm.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
61-
| `dev.suresh.plugin.kotlin.jvm` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.jvm/dev.suresh.plugin.kotlin.jvm.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
62-
| `dev.suresh.plugin.kotlin.mpp` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.mpp/dev.suresh.plugin.kotlin.mpp.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
63-
| `dev.suresh.plugin.kotlin.docs` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.docs/dev.suresh.plugin.kotlin.docs.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
64-
| `dev.suresh.plugin.kotlin.benchmark` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.benchmark/dev.suresh.plugin.kotlin.benchmark.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
65-
| `dev.suresh.plugin.publishing` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.publishing/dev.suresh.plugin.publishing.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
66-
| `dev.suresh.plugin.repos` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.repos/dev.suresh.plugin.repos.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
67-
| `dev.suresh.plugin.catalog` | [![Maven Central](https://img.shields.io/maven-central/v/dev.suresh.plugin.catalog/dev.suresh.plugin.catalog.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)](https://repo1.maven.org/maven2/dev/suresh/plugin/) |
99+
| **Gradle Plugin ID** | **Version** |
100+
|--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
101+
| `dev.suresh.plugin.root` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.root/dev.suresh.plugin.root.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
102+
| `dev.suresh.plugin.common` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.common/dev.suresh.plugin.common.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
103+
| `dev.suresh.plugin.graalvm` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.graalvm/dev.suresh.plugin.graalvm.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
104+
| `dev.suresh.plugin.kotlin.jvm` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.jvm/dev.suresh.plugin.kotlin.jvm.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
105+
| `dev.suresh.plugin.kotlin.mpp` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.mpp/dev.suresh.plugin.kotlin.mpp.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
106+
| `dev.suresh.plugin.kotlin.docs` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.docs/dev.suresh.plugin.kotlin.docs.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
107+
| `dev.suresh.plugin.kotlin.benchmark` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.kotlin.benchmark/dev.suresh.plugin.kotlin.benchmark.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
108+
| `dev.suresh.plugin.publishing` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.publishing/dev.suresh.plugin.publishing.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
109+
| `dev.suresh.plugin.repos` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.repos/dev.suresh.plugin.repos.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
110+
| `dev.suresh.plugin.catalog` | [![](https://img.shields.io/maven-central/v/dev.suresh.plugin.catalog/dev.suresh.plugin.catalog.gradle.plugin?logo=gradle&logoColor=white&color=00B4E6)][plugins_url] |
68111

69112
### Verifying Artifacts
70113

@@ -120,6 +163,8 @@ is [automatically with Gradle][gradle_verification].
120163

121164
[maven_dl]: https://search.maven.org/remote_content?g=dev.suresh.build&a=plugins&v=LATEST
122165

166+
[plugins_url]: https://repo.maven.apache.org/maven2/dev/suresh/plugin
167+
123168
[gha_url]: https://github.com/sureshg/build-commons/actions/workflows/build.yml
124169

125170
[gha_badge]: https://img.shields.io/github/actions/workflow/status/sureshg/build-commons/build.yml?branch=main&color=green&label=Build&logo=Github-Actions&logoColor=green

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ kotlinx-browser = "0.3"
3737
kotlinx-benchmark = "0.4.13"
3838
kotlinx-metadata = "0.9.0"
3939
kotlinx-reflect-lite = "1.1.0"
40-
kotlin-wrappers = "2025.2.1"
40+
kotlin-wrappers = "2025.2.2"
4141
kotlin-redacted = "1.12.0"
4242
kotlin-serviceloader = "0.0.15"
4343
kotlinx-multik = "0.2.3"
@@ -128,7 +128,7 @@ java-keyring = "1.0.4"
128128
java-keychain = "1.1.0"
129129
webjars-xterm = "5.1.0"
130130
arrow-suspendapp = "0.5.0"
131-
exposed = "0.58.0"
131+
exposed = "0.59.0"
132132
postgresql = "42.7.5"
133133
hikariCP = "6.2.1"
134134
h2 = "2.3.232"

0 commit comments

Comments
 (0)