mirror of
https://github.com/mc1arke/sonarqube-community-branch-plugin.git
synced 2024-11-24 08:42:28 +02:00
531f76adf2
The `checkProjectPermission` on Sonarqube's UserSession has been replaced with `hasEntityPermission`, and the `mainBranchProjectUuid` has been dropped from ComponentDTO, which has required a fix to set the right UUID as the project UUID for the branch. Additionally, the `MoreCollectors` map/identity collectors have been dropped from Sonarqube core, so their references have been replaced with equivalent `toMap` collectors from the JRE.
158 lines
4.8 KiB
Groovy
158 lines
4.8 KiB
Groovy
/*
|
|
* Copyright (C) 2020-2023 Michael Clarke
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 3 of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
plugins {
|
|
id('java')
|
|
id('jacoco')
|
|
id('org.sonarqube') version('4.4.1.3373')
|
|
id('info.solidsoft.pitest') version('1.15.0')
|
|
id('com.github.johnrengelman.shadow') version('8.1.1')
|
|
id('net.researchgate.release') version('3.0.2')
|
|
}
|
|
|
|
group 'com.github.mc1arke.sonarqube.plugin'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
ivy {
|
|
url 'https://binaries.sonarsource.com/'
|
|
patternLayout({a ->
|
|
artifact '/Distribution/[module]/[module]-[revision].[ext]'
|
|
})
|
|
metadataSources(sources -> {
|
|
sources.artifact()
|
|
})
|
|
}
|
|
}
|
|
|
|
def sonarqubeVersion = '10.2.1.78527'
|
|
def sonarqubeLibDir = "${projectDir}/sonarqube-lib"
|
|
def sonarLibraries = "${sonarqubeLibDir}/sonarqube-${sonarqubeVersion}/lib"
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
configurations {
|
|
zip
|
|
}
|
|
|
|
compileJava {
|
|
options.compilerArgs += '-proc:none'
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
|
|
|
|
dependencies {
|
|
compileOnly(fileTree(dir: sonarLibraries, include: '**/*.jar', exclude: 'extensions/*.jar'))
|
|
testImplementation(fileTree(dir: sonarLibraries, include: '**/*.jar', exclude: 'extensions/*.jar'))
|
|
testImplementation('org.mockito:mockito-core:5.8.0')
|
|
testImplementation('org.assertj:assertj-core:3.24.2')
|
|
testImplementation('org.wiremock:wiremock:3.3.1')
|
|
zip("sonarqube:sonarqube:${sonarqubeVersion}@zip")
|
|
implementation('org.bouncycastle:bcpkix-jdk15on:1.70')
|
|
implementation(files('lib/nodes-0.5.0.jar'))
|
|
runtimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.16.0')
|
|
compileOnly('com.google.code.findbugs:jsr305:3.0.2')
|
|
implementation('org.javassist:javassist:3.29.2-GA')
|
|
implementation('com.squareup.okhttp3:logging-interceptor:4.12.0')
|
|
testImplementation(platform('org.junit:junit-bom:5.10.1'))
|
|
testImplementation('org.junit.jupiter:junit-jupiter')
|
|
testImplementation('junit:junit:4.13.2')
|
|
testRuntimeOnly('org.junit.vintage:junit-vintage-engine')
|
|
}
|
|
|
|
|
|
project.afterEvaluate {
|
|
if (file("${sonarLibraries}").exists()) {
|
|
return
|
|
}
|
|
project.getLogger().lifecycle('Extracting SonarQube libraries (this may take a while)...')
|
|
configurations.zip.resolvedConfiguration.resolvedArtifacts.each { artifact ->
|
|
copy {
|
|
from zipTree(artifact.getFile())
|
|
into sonarqubeLibDir
|
|
}
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes 'Plugin-Description': 'Enables branch and pull request analysis in SonarQube Community Edition, without having to upgrade to Developer Edition',
|
|
'SonarLint-Supported': false,
|
|
'Plugin-Homepage': 'https://github.com/mc1arke/sonarqube-community-branch-plugin',
|
|
'Plugin-License': 'GNU LGPL 3',
|
|
'Plugin-Version': "${project.version}",
|
|
'Plugin-Organization': 'Michael Clarke',
|
|
'Sonar-Version': "9.14.0.375",
|
|
'Plugin-IssueTrackerUrl': 'https://github.com/mc1arke/sonarqube-community-branch-plugin/issues',
|
|
'Plugin-Key': 'communityBranchPlugin',
|
|
'Plugin-Class': 'com.github.mc1arke.sonarqube.plugin.CommunityBranchPluginBootstrap',
|
|
'Plugin-Name': 'Community Branch Plugin',
|
|
'Premain-Class': 'com.github.mc1arke.sonarqube.plugin.CommunityBranchAgent',
|
|
'Can-Retransform-Classes': 'true'
|
|
}
|
|
}
|
|
|
|
release {
|
|
git {
|
|
requireBranch.set('')
|
|
commitVersionFileOnly.set(true)
|
|
}
|
|
}
|
|
|
|
tasks.jar.configure {
|
|
archiveClassifier = 'nodeps'
|
|
enabled = false
|
|
}
|
|
|
|
tasks.shadowJar.configure {
|
|
archiveClassifier = null
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs << '-Xlint:unchecked'
|
|
options.deprecation = true
|
|
}
|
|
|
|
assemble.dependsOn('shadowJar')
|
|
|
|
pitest {
|
|
junit5PluginVersion = '1.2.1'
|
|
timestampedReports = false
|
|
avoidCallsTo = ['org.slf4j.Logger']
|
|
}
|
|
|
|
jacocoTestReport {
|
|
reports {
|
|
xml.required = true
|
|
}
|
|
}
|
|
|
|
plugins.withType(JacocoPlugin) {
|
|
tasks["test"].finalizedBy 'jacocoTestReport'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events "passed", "skipped", "failed"
|
|
}
|
|
}
|