mirror of
https://gitee.com/dcren/initializr.git
synced 2025-05-05 05:08:01 +08:00
Fix version references in Gradle KTS build
Closes gh-901
This commit is contained in:
parent
c7c16872c4
commit
372e823d21
@ -21,6 +21,6 @@ dependencies {
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom("org.acme:foo-bom:${fooVersion}")
|
||||
mavenBom("org.acme:foo-bom:${property("fooVersion")}")
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,6 @@ import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.Configurati
|
||||
import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.TaskCustomization;
|
||||
import io.spring.initializr.generator.io.IndentingWriter;
|
||||
import io.spring.initializr.generator.version.VersionProperty;
|
||||
import io.spring.initializr.generator.version.VersionReference;
|
||||
|
||||
/**
|
||||
* {@link GradleBuild} writer abstraction.
|
||||
@ -188,27 +187,7 @@ public abstract class GradleBuildWriter {
|
||||
writer.println("}");
|
||||
}
|
||||
|
||||
private String bomAsString(BillOfMaterials bom) {
|
||||
String version = determineVersion(bom.getVersion());
|
||||
return bomAsString(bom, version);
|
||||
}
|
||||
|
||||
protected abstract String bomAsString(BillOfMaterials bom, String version);
|
||||
|
||||
protected final String determineVersion(VersionReference versionReference) {
|
||||
if (versionReference != null) {
|
||||
if (versionReference.isProperty()) {
|
||||
VersionProperty property = versionReference.getProperty();
|
||||
return "${" + (property.isInternal() ? property.toCamelCaseFormat()
|
||||
: externalVersionPropertyAsString(property.toStandardFormat()))
|
||||
+ "}";
|
||||
}
|
||||
return versionReference.getValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected abstract String externalVersionPropertyAsString(String standardFormat);
|
||||
protected abstract String bomAsString(BillOfMaterials bom);
|
||||
|
||||
protected abstract void writeTasksWithTypeCustomizations(IndentingWriter writer,
|
||||
GradleBuild build);
|
||||
|
@ -24,6 +24,7 @@ import io.spring.initializr.generator.buildsystem.BillOfMaterials;
|
||||
import io.spring.initializr.generator.buildsystem.Dependency;
|
||||
import io.spring.initializr.generator.buildsystem.MavenRepository;
|
||||
import io.spring.initializr.generator.io.IndentingWriter;
|
||||
import io.spring.initializr.generator.version.VersionProperty;
|
||||
import io.spring.initializr.generator.version.VersionReference;
|
||||
|
||||
/**
|
||||
@ -138,15 +139,24 @@ public class GroovyDslGradleBuildWriter extends GradleBuildWriter {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String bomAsString(BillOfMaterials bom, String version) {
|
||||
protected String bomAsString(BillOfMaterials bom) {
|
||||
String quoteStyle = determineQuoteStyle(bom.getVersion());
|
||||
return "mavenBom " + quoteStyle + bom.getGroupId() + ":" + bom.getArtifactId()
|
||||
+ ":" + version + quoteStyle;
|
||||
+ ":" + determineVersion(bom.getVersion()) + quoteStyle;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String externalVersionPropertyAsString(String standardFormat) {
|
||||
return "property('" + standardFormat + "')";
|
||||
private String determineVersion(VersionReference versionReference) {
|
||||
if (versionReference != null) {
|
||||
if (versionReference.isProperty()) {
|
||||
VersionProperty property = versionReference.getProperty();
|
||||
return "${"
|
||||
+ (property.isInternal() ? property.toCamelCaseFormat()
|
||||
: ("property('" + property.toStandardFormat() + "')"))
|
||||
+ "}";
|
||||
}
|
||||
return versionReference.getValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -27,6 +27,8 @@ import io.spring.initializr.generator.buildsystem.MavenRepository;
|
||||
import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.ConfigurationCustomization;
|
||||
import io.spring.initializr.generator.buildsystem.gradle.GradleBuild.TaskCustomization;
|
||||
import io.spring.initializr.generator.io.IndentingWriter;
|
||||
import io.spring.initializr.generator.version.VersionProperty;
|
||||
import io.spring.initializr.generator.version.VersionReference;
|
||||
|
||||
/**
|
||||
* A {@link GradleBuild} writer for {@code build.gradle.kts}.
|
||||
@ -151,14 +153,22 @@ public class KotlinDslGradleBuildWriter extends GradleBuildWriter {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String bomAsString(BillOfMaterials bom, String version) {
|
||||
protected String bomAsString(BillOfMaterials bom) {
|
||||
return "mavenBom(\"" + bom.getGroupId() + ":" + bom.getArtifactId() + ":"
|
||||
+ version + "\")";
|
||||
+ determineVersion(bom.getVersion()) + "\")";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String externalVersionPropertyAsString(String standardFormat) {
|
||||
return "property(\"" + standardFormat + "\")";
|
||||
private String determineVersion(VersionReference versionReference) {
|
||||
if (versionReference != null) {
|
||||
if (versionReference.isProperty()) {
|
||||
VersionProperty property = versionReference.getProperty();
|
||||
return "${property(\"" + (property.isInternal()
|
||||
? property.toCamelCaseFormat() : property.toStandardFormat())
|
||||
+ "\")}";
|
||||
}
|
||||
return versionReference.getValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -251,7 +251,7 @@ class KotlinDslGradleBuildWriterTests {
|
||||
DependencyScope.COMPILE);
|
||||
List<String> lines = generateBuild(build);
|
||||
assertThat(lines).containsSequence("dependencies {",
|
||||
" implementation(\"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}\")",
|
||||
" implementation(\"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${property(\"kotlinVersion\")}\")",
|
||||
"}");
|
||||
}
|
||||
|
||||
@ -425,7 +425,7 @@ class KotlinDslGradleBuildWriterTests {
|
||||
List<String> lines = generateBuild(build);
|
||||
assertThat(lines).containsSequence("dependencyManagement {", " imports {",
|
||||
" mavenBom(\"com.example:my-project-dependencies:1.0.0.RELEASE\")",
|
||||
" mavenBom(\"com.example:root-dependencies:${rootVersion}\")",
|
||||
" mavenBom(\"com.example:root-dependencies:${property(\"rootVersion\")}\")",
|
||||
" }", "}");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user