Plex/build.gradle

180 lines
5.5 KiB
Groovy

plugins {
id "java"
id "maven-publish"
id "net.minecrell.plugin-yml.bukkit" version "0.5.1"
id "com.github.johnrengelman.shadow" version "7.1.2"
}
repositories {
mavenLocal()
maven {
url = uri("https://papermc.io/repo/repository/maven-public/")
}
maven {
url = uri("https://repository.apache.org/content/repositories/snapshots/")
}
maven {
url = uri("https://repo.maven.apache.org/maven2/")
}
mavenCentral()
}
dependencies {
library "org.projectlombok:lombok:1.18.22"
annotationProcessor "org.projectlombok:lombok:1.18.22"
library "org.json:json:20220320"
library "commons-io:commons-io:2.11.0"
library "dev.morphia.morphia:morphia-core:2.2.6"
library "redis.clients:jedis:4.2.0"
library "org.mariadb.jdbc:mariadb-java-client:3.0.4"
library "org.apache.httpcomponents:httpclient:4.5.13"
library "org.apache.commons:commons-lang3:3.12.0"
library "org.apache.maven.resolver:maven-resolver-api:1.7.3"
library "org.apache.maven.resolver:maven-resolver-impl:1.7.3"
library "org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3"
library "org.apache.maven.resolver:maven-resolver-transport-http:1.7.3"
library "org.apache.maven:maven-resolver-provider:3.8.5"
library "org.springframework.boot:spring-boot-starter-web:2.6.5"
compileOnly "io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT"
implementation "org.bstats:bstats-base:3.0.0"
implementation "org.bstats:bstats-bukkit:3.0.0"
}
group = "dev.plex"
version = "0.10-SNAPSHOT"
description = "Plex"
shadowJar {
archiveClassifier.set("")
relocate "org.bstats", "dev.plex"
}
bukkit {
name = "Plex"
version = rootProject.version
description = "Plex provides a new experience for freedom servers."
main = "dev.plex.Plex"
website = "https://plex.us.org"
authors = ["Telesphoreo", "taahanis", "super"]
apiVersion = "1.18"
}
String getGitHash() {
def stdout = new ByteArrayOutputStream()
try {
exec {
commandLine "git", "rev-parse", "--short", "HEAD"
standardOutput = stdout
ignoreExitValue = true
}
} catch (GradleException e) {
logger.error("Couldn't determine Git head because Git is not installed. " + e.getMessage())
}
return stdout.size() > 0 ? stdout.toString().trim() : "unknown"
}
String getBuildNumber() {
def stdout = new ByteArrayOutputStream()
try {
exec {
commandLine "git", "rev-list", "HEAD", "--count"
standardOutput = stdout
ignoreExitValue = true
}
} catch (GradleException e) {
logger.error("Couldn't determine build number because Git is not installed. " + e.getMessage())
}
return stdout.size() ? stdout.toString().trim() + " (local)" : "unknown"
}
static def getDate() {
return new Date().format("MM/dd/yyyy '<light_purple>at<gold>' hh:mm:ss a")
}
task buildProperties {
ant.propertyfile(file: "$project.rootDir/src/main/resources/build.properties") {
entry(key: "buildAuthor", default: System.getenv("JENKINS_URL") != null ? "jenkins" : "unknown")
entry(key: "buildNumber", value: System.getenv("JENKINS_URL") != null ? System.getenv("BUILD_NUMBER") + " (Jenkins)" : getBuildNumber())
entry(key: "buildDate", value: getDate())
entry(key: "buildHead", value: getGitHash())
}
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}
publishing {
publications {
maven(MavenPublication) {
from(components.java)
}
plexReleases(MavenPublication) {
from(components.java)
repositories {
maven {
url("https://nexus.telesphoreo.me/repository/plex-releases/")
credentials {
username = System.getenv("plex_repo_user")
password = System.getenv("plex_repo_pass")
}
}
}
}
plexSnapshots(MavenPublication) {
from(components.java)
repositories {
maven {
url("https://nexus.telesphoreo.me/repository/plex-snapshots/")
credentials {
username = System.getenv("plex_repo_user")
password = System.getenv("plex_repo_pass")
}
}
}
}
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
tasks {
build {
dependsOn(shadowJar)
finalizedBy(buildProperties)
if (System.getenv("plex_repo_user") != null && System.getenv("plex_repo_pass") != null) {
if (!getVersion().toString().toLowerCase().endsWith("-snapshot")) {
dependsOn(publishPlexReleasesPublicationToMavenRepository)
}
}
}
javadoc {
options.memberLevel = JavadocMemberLevel.PRIVATE
}
}
task publishRelease {
dependsOn(publishPlexReleasesPublicationToMavenRepository)
}
task publishSnapshot {
dependsOn(publishPlexSnapshotsPublicationToMaven2Repository)
}
task jenkinsPublish {
if (System.getenv("plex_repo_user") == "jenkins") {
if (System.getenv("plex_repo_user") != null && System.getenv("plex_repo_user") == "jenkins") {
if (!getVersion().toString().toLowerCase().endsWith("-snapshot")) {
dependsOn(publishPlexReleasesPublicationToMavenRepository)
} else {
dependsOn(publishPlexSnapshotsPublicationToMaven2Repository)
}
}
}
}