diff options
author | Olaf Śnieżek <osniezek@gradle.com> | 2022-11-17 12:53:52 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-02-14 20:02:48 +0000 |
commit | e88ee19ed1c747f18901f4806ac78c8722780998 (patch) | |
tree | f2d4470d1f5f67d677cd3255050a13f721742461 | |
parent | 92b1f5513e74831427c8ab2d60ec8f5e173fc8fe (diff) | |
download | sonarqube-e88ee19ed1c747f18901f4806ac78c8722780998.tar.gz sonarqube-e88ee19ed1c747f18901f4806ac78c8722780998.zip |
Optimize gradle build to use the incremental build feature
-rw-r--r-- | buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy | 29 | ||||
-rw-r--r-- | sonar-application/build.gradle | 29 |
2 files changed, 37 insertions, 21 deletions
diff --git a/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy b/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy new file mode 100644 index 00000000000..cb611e90497 --- /dev/null +++ b/buildSrc/src/main/groovy/org.sonar.build/LicenseReader.groovy @@ -0,0 +1,29 @@ +package org.sonar.build + +import groovy.json.JsonOutput +import groovy.json.JsonSlurper + +class LicenseReader extends FilterReader { + + LicenseReader(Reader fileReader) { + super(build(fileReader)) + } + + private static Reader build(Reader fileReader) { + def json = new JsonSlurper().parse(fileReader) + + json.dependencies.each { dependency -> + if (dependency.licenses.size() > 1) { + def idx = dependency.licenses.findIndexOf { it.name == "Elastic License 2.0" } + if (idx >= 0) { + dependency.licenses = [dependency.licenses[idx]] + } + } + } + + json.dependencies.sort { it.name } + + def jsonText = JsonOutput.toJson(json) + return new StringReader(JsonOutput.prettyPrint(jsonText)) + } +} diff --git a/sonar-application/build.gradle b/sonar-application/build.gradle index d6da1f90227..54e2ac87de7 100644 --- a/sonar-application/build.gradle +++ b/sonar-application/build.gradle @@ -1,6 +1,5 @@ -import groovy.json.JsonOutput -import groovy.json.JsonSlurper import org.apache.tools.ant.filters.ReplaceTokens +import org.sonar.build.LicenseReader plugins { id "com.github.hierynomus.license-report" @@ -133,20 +132,7 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic into("${archiveDir}/") { from(tasks.downloadLicenses.outputs) { include 'dependency-license.json' - eachFile { jsonFile -> - def json = new JsonSlurper().parse(jsonFile.file) - json.dependencies.each { dependency -> - if (dependency.licenses.size() > 1) { - def idx = dependency.licenses.findIndexOf { it.name == "Elastic License 2.0" } - if (idx >= 0) { - dependency.licenses = [dependency.licenses[idx]] - } - } - } - json.dependencies.sort { it.name } - def jsonText = JsonOutput.toJson(json) - jsonFile.file.text = JsonOutput.prettyPrint(jsonText) - } + filter(LicenseReader) } } } @@ -275,7 +261,11 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic } // Create the empty dir (plugins) required by elasticsearch into("${archiveDir}/elasticsearch/") { - from "$buildDir/elasticsearch" + // Create the empty dir required by elasticsearch + from { + new File(buildDir, 'elasticsearch/plugins').mkdirs() + "$buildDir/elasticsearch" + } } into("${archiveDir}/lib/extensions/") { from configurations.bundledPlugin @@ -315,10 +305,7 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic from configurations.shutdowner } } -// Create the empty dir required by elasticsearch -zip.doFirst { - new File(buildDir, 'elasticsearch/plugins').mkdirs() -} + // Check the size of the archive zip.doLast { def minLength = 320000000 |