12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- plugins {
- id 'application'
- id 'org.gradlex.reproducible-builds' version '1.0'
- id 'com.github.spotbugs' version '6.0.26'
- id 'io.github.sgtsilvio.gradle.proguard' version '0.7.0'
- id 'org.sonarqube' version '6.0.1.5171'
- }
- repositories {
- mavenCentral()
- }
- dependencies {
- spotbugs 'com.github.spotbugs:spotbugs:4.8.6'
- spotbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:7.6.8'
- proguardClasspath 'com.guardsquare:proguard-base:7.6.0'
- implementation 'com.google.guava:guava:33.3.1-jre'
- compileOnly 'com.github.spotbugs:spotbugs-annotations:4.8.6'
- }
- version = '1.0.0'
- sonar {
- properties {
- property "sonar.projectKey", "marek22k_BattleShipMirror"
- property "sonar.organization", "marek22k"
- property "sonar.host.url", "https://sonarcloud.io"
- }
- }
- spotbugs {
- effort = com.github.spotbugs.snom.Effort.valueOf 'MAX'
- reportLevel = com.github.spotbugs.snom.Confidence.valueOf 'LOW'
- excludeFilter = file 'spotbugs-exclude.xml'
- }
- sourceSets {
- main {
- java.srcDirs = ['src']
- resources.srcDirs = ['resources']
- }
- }
- java {
- toolchain {
- languageVersion = JavaLanguageVersion.of 21
- }
- }
- application {
- mainClass = 'battleship.Entrypoint'
- }
- task fatJar(type: Jar) {
- dependsOn check
- from {
- configurations.runtimeClasspath.collect {
- it.isDirectory() ? it : zipTree(it)
- }
- }
- manifest {
- attributes 'Main-Class' : application.mainClass
- }
- duplicatesStrategy = DuplicatesStrategy.EXCLUDE
- preserveFileTimestamps = false
- reproducibleFileOrder = true
- includeEmptyDirs = false
- archiveClassifier = 'all-in-one'
- with jar
- }
- task proguardedJar(type: io.github.sgtsilvio.gradle.proguard.ProguardTask) {
- addInput {
- classpath.from(tasks.fatJar)
- }
- addOutput {
- archiveFile.set(base.libsDirectory.file("${project.name}-${project.version}-all-in-one-proguarded.jar"))
- }
- addLibrary {
- classpath.from(configurations.compileClasspath)
- }
- jdkModules.add 'java.base'
- jdkModules.add 'java.desktop'
- jdkModules.add 'java.logging'
- jdkModules.add 'java.datatransfer'
- rulesFiles.from file('battleship.pro')
- }
|