Tooling and Project Concepts
Gradle Coordinate
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
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")
}
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
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
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