plugins { id 'com.github.johnrengelman.shadow' version '8.1.1' id 'org.cadixdev.licenser' version '0.6.1' id 'org.ajoberstar.grgit' version '5.2.0' id 'maven-publish' id 'java' } group 'net.william278' version "2.0.4${versionMetadata()}" defaultTasks 'licenseFormat', 'build' repositories { mavenCentral() } dependencies { implementation 'org.json:json:20230618' compileOnly 'net.kyori:adventure-api:4.13.1' compileOnly 'org.jetbrains:annotations:24.0.1' testImplementation 'net.kyori:adventure-platform-bukkit:4.3.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.3' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.3' } tasks { compileJava { options.encoding = 'UTF-8' options.release.set(11) } jar { manifest { attributes('Automatic-Module-Name': 'net.william278.desertwell') } } } license { header = rootProject.file('HEADER') include '**/*.java' newLine = true } logger.lifecycle("Building DesertWell ${version} by William278") version rootProject.version archivesBaseName = "${rootProject.name}" jar.dependsOn shadowJar clean.delete "$rootDir/target" javadoc { options.encoding = 'UTF-8' options.addStringOption('Xdoclint:none', '-quiet') } java { withSourcesJar() withJavadocJar() } test { useJUnitPlatform() } publishing { repositories { if (System.getenv("RELEASES_MAVEN_USERNAME") != null) { maven { name = "william278-releases" url = "https://repo.william278.net/releases" credentials { username = System.getenv("RELEASES_MAVEN_USERNAME") password = System.getenv("RELEASES_MAVEN_PASSWORD") } authentication { basic(BasicAuthentication) } } } if (System.getenv("SNAPSHOTS_MAVEN_USERNAME") != null) { maven { name = "william278-snapshots" url = "https://repo.william278.net/snapshots" credentials { username = System.getenv("SNAPSHOTS_MAVEN_USERNAME") password = System.getenv("SNAPSHOTS_MAVEN_PASSWORD") } authentication { basic(BasicAuthentication) } } } publications { mavenJava(MavenPublication) { groupId = 'net.william278' artifactId = 'desertwell' version = "$rootProject.version" artifact shadowJar artifact javadocJar artifact sourcesJar } } } } @SuppressWarnings('GrMethodMayBeStatic') def versionMetadata() { // Get if there is a tag for this commit def tag = grgit.tag.list().find { it.commit.id == grgit.head().id } if (tag != null) { return '' } // Otherwise, get the last commit hash and if it's a clean head if (grgit == null) { return '-' + System.getenv("GITHUB_RUN_NUMBER") ? 'build.' + System.getenv("GITHUB_RUN_NUMBER") : 'unknown' } return '-' + grgit.head().abbreviatedId + (grgit.status().clean ? '' : '-indev') }