From 8e6a14b3e07809b512ced51109c7161fb074f652 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Tue, 6 Oct 2020 19:07:24 +0200 Subject: [PATCH] Use version properties inside pom.xml --- src/main/kotlin/starter/Models.kt | 3 +++ src/main/kotlin/starter/config/Config.kt | 1 + src/main/kotlin/starter/templates/PomTemplate.kt | 2 ++ src/main/resources/starter/pom/@dependencies.twig | 4 ++-- src/main/resources/starter/pom/index.twig | 7 ++++++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/starter/Models.kt b/src/main/kotlin/starter/Models.kt index 7e0ec7e..ae9e410 100644 --- a/src/main/kotlin/starter/Models.kt +++ b/src/main/kotlin/starter/Models.kt @@ -18,6 +18,7 @@ data class Dependency( val scope: Scope, val logger: String?, val repository: String?, + val versionKey: String, ) data class Repository(val name: String, val url: String) @@ -31,3 +32,5 @@ data class Project( val dependencies: List, val repositories: List, ) + +data class Version(val name: String, val value: String) diff --git a/src/main/kotlin/starter/config/Config.kt b/src/main/kotlin/starter/config/Config.kt index bac1340..a5f96e6 100644 --- a/src/main/kotlin/starter/config/Config.kt +++ b/src/main/kotlin/starter/config/Config.kt @@ -38,6 +38,7 @@ class Config { values.getEnumOrElse("scope", Scope.Compile), values["logger"], values["repository"], + versionKey ) } diff --git a/src/main/kotlin/starter/templates/PomTemplate.kt b/src/main/kotlin/starter/templates/PomTemplate.kt index 54e390b..65fddfa 100644 --- a/src/main/kotlin/starter/templates/PomTemplate.kt +++ b/src/main/kotlin/starter/templates/PomTemplate.kt @@ -2,6 +2,7 @@ package starter.templates import com.mitchellbosecke.pebble.PebbleEngine import starter.Project +import starter.Version import starter.utils.prettyPrintXml import starter.utils.render @@ -13,6 +14,7 @@ class PomTemplate(private val engine: PebbleEngine) : Template { "dependencies" to project.dependencies.sortedBy { it.scope }, "repositories" to project.repositories, "kotlinxSerialization" to project.dependencies.any { it.name == "Kotlinx-serialization" }, + "versions" to project.dependencies.map { Version(name = it.versionKey, value = it.version) }.toSet() ) project.inputs.forEach { diff --git a/src/main/resources/starter/pom/@dependencies.twig b/src/main/resources/starter/pom/@dependencies.twig index 22a24dc..cbc8ebe 100644 --- a/src/main/resources/starter/pom/@dependencies.twig +++ b/src/main/resources/starter/pom/@dependencies.twig @@ -8,9 +8,9 @@ {{ dep.groupId }} {{ dep.artifactId }} - {{ dep.version }} + {{ "${" }}{{ dep.versionKey }}{{ ".version}" }} {% if dep.scope == "Test" %} - test + test {% endif %} {% endfor %} diff --git a/src/main/resources/starter/pom/index.twig b/src/main/resources/starter/pom/index.twig index 092199e..f802f36 100644 --- a/src/main/resources/starter/pom/index.twig +++ b/src/main/resources/starter/pom/index.twig @@ -12,6 +12,11 @@ ${java.version} UTF-8 {{ basePackage }}/{{ name | lower | capitalize }}Kt + + {% for version in versions %} + <{{version.name}}.version>{{version.value}} + {% endfor %} + {% include "starter/pom/@dependencies" %} @@ -20,4 +25,4 @@ {% include "starter/pom/@plugins" %} - \ No newline at end of file +