Browse Source

SONAR-19498 Backport handling ElasticSearch as a regular gradle dependency

tags/9.9.5.90363
Alain Kermis 4 months ago
parent
commit
91841b996d
2 changed files with 15 additions and 28 deletions
  1. 1
    5
      gradle.properties
  2. 14
    23
      sonar-application/build.gradle

+ 1
- 5
gradle.properties View File

@@ -5,9 +5,5 @@ projectTitle=SonarQube
org.gradle.jvmargs=-Xmx2048m
org.gradle.caching=true
org.gradle.vfs.watch=true
# https://www.elastic.co/downloads/elasticsearch-no-jdk
elasticsearchDownloadUrlPath=https://artifacts.elastic.co/downloads/elasticsearch/
elasticsearchDownloadRepoxUrlPath=https://repox.jfrog.io/artifactory/sonarsource-bucket/sonarqube/elasticsearch/
elasticsearchDownloadUrlFile=elasticsearch-7.17.15-no-jdk-linux-x86_64.tar.gz
elasticsearchDownloadSha512=554869c7b420ae25a21477962d9edc0d6f4c256247c03a59927282f6a908639c3aec30b27237c1fd8bd496b31d1027056fbdf83b3eaaa6d002b0e1eddf02a232
elasticsearchVersion=7.17.15
projectType=application

+ 14
- 23
sonar-application/build.gradle View File

@@ -16,6 +16,7 @@ sonar {
}

configurations {
zipDist
zip
scanner
web
@@ -73,6 +74,14 @@ dependencies {
jdbc_h2 'com.h2database:h2'
jdbc_mssql 'com.microsoft.sqlserver:mssql-jdbc'
jdbc_postgresql 'org.postgresql:postgresql'

def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
if (artifactoryUsername && artifactoryPassword) {
zipDist "sonarqube:elasticsearch:${elasticsearchVersion}-no-jdk-linux-x86_64@tar.gz"
} else {
zipDist "sonarqube:elasticsearch:${elasticsearchVersion}-linux-x86_64@tar.gz"
}
}

// declare dependencies in configuration bundledPlugin to be packaged in lib/extensions
@@ -91,32 +100,11 @@ task verifySonarProperties(type: Verify) {
}
}

task verifyElasticSearchDownload(type: Verify) {
src new File(buildDir, "$elasticsearchDownloadUrlFile")
algorithm 'SHA-512'
checksum elasticsearchDownloadSha512
}

task downloadElasticSearch(type: Download) {
def artifactoryUsername = System.env.'ARTIFACTORY_PRIVATE_USERNAME' ?: (project.hasProperty('artifactoryUsername') ? project.getProperty('artifactoryUsername') : '')
def artifactoryPassword = System.env.'ARTIFACTORY_PRIVATE_PASSWORD' ?: (project.hasProperty('artifactoryPassword') ? project.getProperty('artifactoryPassword') : '')
if (artifactoryUsername && artifactoryPassword) {
src "$elasticsearchDownloadRepoxUrlPath$elasticsearchDownloadUrlFile"
username artifactoryUsername
password artifactoryPassword
} else {
src "$elasticsearchDownloadUrlPath$elasticsearchDownloadUrlFile"
}
dest "$buildDir/$elasticsearchDownloadUrlFile"
onlyIfModified true
finalizedBy verifyElasticSearchDownload
}

downloadLicenses {
dependencyConfiguration = 'appLicenses'
}

task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElasticSearch, verifyElasticSearchDownload]) {
task zip(type: Zip, dependsOn: [configurations.compileClasspath]) {
duplicatesStrategy DuplicatesStrategy.EXCLUDE
def archiveDir = "sonarqube-$project.version"

@@ -155,7 +143,10 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, downloadElastic
}


from(tarTree(downloadElasticSearch.dest)) {
ResolvedArtifact elasticSearchArtifact = configurations.zipDist.resolvedConfiguration.resolvedArtifacts.find {
it.moduleVersion.id.name == "elasticsearch"
}
from(tarTree(elasticSearchArtifact.file)) {
eachFile { fcd ->
def path = fcd.relativePath.segments - fcd.relativeSourcePath.segments + fcd.relativeSourcePath.segments.drop(1)
fcd.relativePath = new RelativePath(true, *path)

Loading…
Cancel
Save