我正在尝试在 kotlin 的 bamboo spec 中转换/添加以下 java 代码,但出现错误。有人可以告诉我如何在 Kotlin 中使用它吗?如何在他们在 java 中使用的 kotlin 中使用 mapbuilder。
new AnyTask(new AtlassianModule("ch.mibex.bamboo.sonar4bamboo:sonar4bamboo.gradletask"))
.description("Sonar Gradle")
.configuration(new MapBuilder()
.put("chosenSonarConfigId", "1")
.put("useGradleWrapper", "true")
.put("useNewGradleSonarQubePlugin", "true")
.put("sonarJavaSource", "")
.put("sonarProjectName", "")
.put("buildJdk", "JDK")
.put("gradleWrapperLocation", "${bamboo.build.working.directory}\\XYZ\\gradlew.bat")
.put("sonarLanguage", "")
.put("sonarSources", "")
.put("useGlobalSonarServerConfig", "true")
.put("failBuildForBrokenQualityGates", "")
.put("sonarTests", "")
.put("failBuildForSonarErrors", "")
.put("sonarProjectVersion", "")
.put("sonarBranch", "")
.put("executable", "")
.put("illegalBranchCharsReplacement", "_")
.put("sonarJavaTarget", "")
.put("environmentVariables", "")
.put("replaceSpecialBranchChars", "")
.put("additionalProperties", "")
.put("autoBranch", "")
.put("sonarProjectKey", "")
.put("overrideSonarBuildConfig", "")
.put("workingSubDirectory", "XYZ")
.build()))
我想我需要在 kotlin 中使用 MapBuilder 但我不知道如何使用它和所有值
In kotlin
AnyTask(AtlassianModule("ch.mibex.bamboo.sonar4bamboo:sonar4bamboo.gradletask"))
.description("Sonar Gradle").configuration(MapBuilder()
.put("chosenSonarConfigId", "1")
.put("useGradleWrapper", "true")
.put("useNewGradleSonarQubePlugin", "true")
.put("sonarJavaSource", "")
.put("sonarProjectName", "")
.put("buildJdk", "JDK")
.put("gradleWrapperLocation", "\${bamboo.build.working.directory}/gradlew.bat")
.put("sonarLanguage", "")
.put("sonarSources", "")
.put("useGlobalSonarServerConfig", "true")
.put("failBuildForBrokenQualityGates", "")
.put("sonarTests", "")
.put("failBuildForSonarErrors", "")
.put("sonarProjectVersion", "")
.put("sonarBranch", "")
.put("executable", "")
.put("illegalBranchCharsReplacement", "_")
.put("sonarJavaTarget", "")
.put("environmentVariables", "")
.put("replaceSpecialBranchChars", "")
.put("additionalProperties", "")
.put("autoBranch", "")
.put("sonarProjectKey", "")
.put("overrideSonarBuildConfig", "")
.put("workingSubDirectory", "")
.build())
最佳答案
要解决这个问题,您应该按照建议指定类型:
configuration(MapBuilder<String,String>().put...
但是,在 Kotlin 中有一个更直接的方法,使用它的 mapOf
:
mapOf("chosenSonarConfigId" to "1",
"useNewGradleSonarQubePlugin" to "true",
"sonarJavaSource" to "true"
//...
)
关于java - 如何在 kotlin 中使用 MapBuilder 并添加所有值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45742514/