Allow ext properties to have non-String values

Closes gh-893
This commit is contained in:
Andy Wilkinson
2019-04-30 11:06:04 +01:00
parent e009a4e152
commit 3409325342
2 changed files with 5 additions and 5 deletions

View File

@@ -170,7 +170,7 @@ public class GradleBuildWriter {
}
Map<String, String> allProperties = new LinkedHashMap<>(build.getExt());
build.getVersionProperties().entrySet().forEach((entry) -> allProperties
.put(getVersionPropertyKey(entry), entry.getValue()));
.put(getVersionPropertyKey(entry), "'" + entry.getValue() + "'"));
writeNestedCollection(writer, "ext", allProperties.entrySet(),
(e) -> getFormattedProperty(e.getKey(), e.getValue()), writer::println);
}
@@ -181,7 +181,7 @@ public class GradleBuildWriter {
}
private String getFormattedProperty(String key, String value) {
return String.format("set('%s', '%s')", key, value);
return String.format("set('%s', %s)", key, value);
}
private void writeDependencies(IndentingWriter writer, GradleBuild build) {

View File

@@ -183,9 +183,9 @@ class GradleBuildWriterTests {
GradleBuild build = new GradleBuild();
build.setGroup("com.example.demo");
build.setArtifact("demo");
build.ext("java.version", "1.8").ext("alpha", "a");
build.ext("java.version", "'1.8'").ext("alpha", "file('build/example')");
List<String> lines = generateBuild(build);
assertThat(lines).containsSequence(" set('alpha', 'a')",
assertThat(lines).containsSequence(" set('alpha', file('build/example'))",
" set('java.version', '1.8')");
}
@@ -233,7 +233,7 @@ class GradleBuildWriterTests {
build.setArtifact("demo");
build.addInternalVersionProperty("test-version", "1.0");
build.addExternalVersionProperty("alpha-version", "0.1");
build.ext("myProperty", "42");
build.ext("myProperty", "'42'");
List<String> lines = generateBuild(build);
assertThat(lines).containsSequence(" set('myProperty', '42')",
" set('alpha-version', '0.1')", " set('testVersion', '1.0')");