sonar { properties { property 'sonar.projectName', "${projectTitle} :: Scanner :: Protocol" property 'sonar.exclusions', 'src/main/java/org/sonar/scanner/protocol/viewer/**' } } dependencies { // please keep the list ordered api 'com.google.code.gson:gson' api 'com.google.protobuf:protobuf-java' api 'commons-io:commons-io' api 'commons-lang:commons-lang' api project(':sonar-core') compileOnlyApi 'com.google.code.findbugs:jsr305' testImplementation 'com.google.guava:guava' testImplementation 'junit:junit' testImplementation 'org.assertj:assertj-core' } //create a single Jar with all dependencies task fatJar(type: Jar) { manifest { attributes 'Main-Class': 'org.sonar.scanner.protocol.viewer.ScannerReportViewerApp' } archiveBaseName = project.name + '-all' from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } with jar duplicatesStrategy = DuplicatesStrategy.EXCLUDE } build.dependsOn fatJar // Produce Java 11 bytecode while making sure the code does not use any APIs from Java 17 tasks.withType(JavaCompile) { options.release = 11 } // Used by sonar-db-core to run DB Unit Tests artifactoryPublish.skip = false publishing { publications { mavenJava(MavenPublication) { from components.java if (release) { artifact sourcesJar artifact javadocJar } } } }