A Kotlin project is often identified by a group, artifact name, and version.

coordinate A coordinate names a build artifact in a predictable `group:name:version` shape.

Gradle Coordinate

version
GradleCoordinate.kt
Replay: real traced execution (multi-file project)
fun main() {
    val version = "1.0.0"
    val group = "com.example"
    val name = "trace-demo"
    val coordinate = "$group:$name:$version"
    val stable = !version.contains("-")

    println("coordinate=$coordinate")
    println("stable=$stable")
}
fun main() {
    val version = "1.1.0"
    val group = "com.example"
    val name = "trace-demo"
    val coordinate = "$group:$name:$version"
    val stable = !version.contains("-")

    println("coordinate=$coordinate")
    println("stable=$stable")
}
fun main() {
    val version = "2.0.0"
    val group = "com.example"
    val name = "trace-demo"
    val coordinate = "$group:$name:$version"
    val stable = !version.contains("-")

    println("coordinate=$coordinate")
    println("stable=$stable")
}
  1. version ← 1.0.0, group ← com.example, name ← trace-demo, coordinate ← com.example:trace-demo:1.0.0

    1fun main() {2    val version→ 1.0.0 = "1.0.0" //@version="1.1.0", "2.0.0"3    val group→ com.example = "com.example"4    val name→ trace-demo = "trace-demo"5    val coordinate→ com.example:trace-demo:1.0.0 = "$groupcom.example:$nametrace-demo:$version1.0.0"6    val stable→ true = !version1.0.0.contains("-")78    println("coordinate=$coordinatecom.example:trace-demo:1.0.0")9    println("stable=$stabletrue")10}
    outputcoordinate=com.example:trace-demo:1.0.0
    stable=true
  1. version ← 1.1.0, group ← com.example, name ← trace-demo, coordinate ← com.example:trace-demo:1.1.0

    1fun main() {2    val version→ 1.1.0 = "1.1.0"3    val group→ com.example = "com.example"4    val name→ trace-demo = "trace-demo"5    val coordinate→ com.example:trace-demo:1.1.0 = "$groupcom.example:$nametrace-demo:$version1.1.0"6    val stable→ true = !version1.1.0.contains("-")78    println("coordinate=$coordinatecom.example:trace-demo:1.1.0")9    println("stable=$stabletrue")10}
    outputcoordinate=com.example:trace-demo:1.1.0
    stable=true
  1. version ← 2.0.0, group ← com.example, name ← trace-demo, coordinate ← com.example:trace-demo:2.0.0

    1fun main() {2    val version→ 2.0.0 = "2.0.0"3    val group→ com.example = "com.example"4    val name→ trace-demo = "trace-demo"5    val coordinate→ com.example:trace-demo:2.0.0 = "$groupcom.example:$nametrace-demo:$version2.0.0"6    val stable→ true = !version2.0.0.contains("-")78    println("coordinate=$coordinatecom.example:trace-demo:2.0.0")9    println("stable=$stabletrue")10}
    outputcoordinate=com.example:trace-demo:2.0.0
    stable=true