@@ -6,22 +6,18 @@ configurations to ensure consistency across Stream's Android libraries and appli
66> ** Note:** These plugins are designed specifically for Stream's projects and workflows. They aren't
77> intended for general-purpose use and may include Stream-specific configurations and conventions.
88
9- ## Overview
10-
11- This repository contains reusable Gradle convention plugins that encapsulate common build logic,
12- dependencies, and configurations used across Stream's Android projects.
13-
149## Available Plugins
1510
1611- ** ` io.getstream.project ` ** - Root project configuration (apply to root ` build.gradle.kts ` )
17- - ** ` io.getstream.android.library ` ** - For Android library modules
18- - ** ` io.getstream.android.application ` ** - For Android application modules
19- - ** ` io.getstream.android.test ` ** - For Android test modules
20- - ** ` io.getstream.java.library ` ** - For Java/Kotlin JVM library modules
12+ - ** ` io.getstream.android.library ` ** - Android library modules
13+ - ** ` io.getstream.android.application ` ** - Android application modules
14+ - ** ` io.getstream.android.test ` ** - Android test modules
15+ - ** ` io.getstream.java.library ` ** - Java/Kotlin JVM library modules
16+ - ** ` io.getstream.java.platform ` ** - Java/Kotlin JVM platform modules
2117
2218## Usage
2319
24- ### 1. Root Project Configuration
20+ ### Root Project Setup
2521
2622Apply the root plugin in your root ` build.gradle.kts ` :
2723
@@ -55,22 +51,61 @@ streamProject {
5551 // Additional Sonar coverage exclusion patterns for file paths (default: empty)
5652 sonarCoverageExclusions = listOf (" **/io/getstream/some/package/**" )
5753 }
54+
55+ publishing {
56+ // Required: Description for all published artifacts
57+ description = " Magical Stream SDK"
58+
59+ // Optional: Override artifact IDs for specific modules
60+ moduleArtifactIdOverrides = mapOf (
61+ " my-module" to " custom-artifact-id"
62+ )
63+ }
5864}
5965```
6066
61- ### 2. Module Configuration
67+ ### Module Setup
6268
6369Apply the appropriate plugin to each module:
6470
6571``` kotlin
6672plugins {
6773 id(" io.getstream.android.library" )
68- // or id("io.getstream.android.application")
69- // or id("io.getstream.android.test")
70- // or id("io.getstream.java.library")
74+ // or: id("io.getstream.android.application")
75+ // or: id("io.getstream.android.test")
76+ // or: id("io.getstream.java.library")
77+ // or: id("io.getstream.java.platform")
7178}
7279```
7380
81+ Library and platform plugins automatically configure Maven publishing.
82+
83+ ## Versioning
84+
85+ Version is read from the project version. Can be set, for example, by adding it to
86+ ` gradle.properties ` :
87+
88+ ``` properties
89+ version =1.0.0
90+ ```
91+
92+ All published modules use this version. For snapshot builds, set the ` SNAPSHOT ` environment
93+ variable:
94+
95+ ``` bash
96+ SNAPSHOT=true ./gradlew publish
97+ ```
98+
99+ This produces timestamped snapshot versions: ` 1.0.0-yyyyMMddHHmm-SNAPSHOT `
100+
101+ ## Publishing
102+
103+ Published artifacts use:
104+
105+ - ** Group ID** : ` io.getstream `
106+ - ** Artifact ID** : Module name (or override via ` moduleArtifactIdOverrides ` )
107+ - ** Version** : From ` gradle.properties `
108+
74109## License
75110
76111See [ LICENSE] ( LICENSE ) file for details.
0 commit comments