mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-27 10:39:11 +00:00
* Started impl for mongo * added docs * refactor of the mongo code, made mongodb artifacts download at run time, tested and working * complete all change requests * remove mongo and bson from relocations as they arnt needed * changed the config * updated docs * not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null --------- Co-authored-by: William <will27528@gmail.com>
180 lines
5.6 KiB
Groovy
180 lines
5.6 KiB
Groovy
import org.apache.tools.ant.filters.ReplaceTokens
|
|
|
|
plugins {
|
|
id 'com.github.johnrengelman.shadow' version '8.1.1'
|
|
id 'org.cadixdev.licenser' version '0.6.1' apply false
|
|
id 'org.ajoberstar.grgit' version '5.2.2'
|
|
id 'maven-publish'
|
|
id 'java'
|
|
}
|
|
|
|
group 'net.william278'
|
|
version "$ext.plugin_version${versionMetadata()}"
|
|
description "$ext.plugin_description"
|
|
defaultTasks 'licenseFormat', 'build'
|
|
|
|
ext {
|
|
set 'version', version.toString()
|
|
set 'description', description.toString()
|
|
|
|
set 'jedis_version', jedis_version.toString()
|
|
set 'mysql_driver_version', mysql_driver_version.toString()
|
|
set 'mariadb_driver_version', mariadb_driver_version.toString()
|
|
set 'mongodb_driver_version', mongodb_driver_version.toString()
|
|
set 'snappy_version', snappy_version.toString()
|
|
}
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'org.cadixdev.licenser'
|
|
apply plugin: 'java'
|
|
|
|
compileJava.options.encoding = 'UTF-8'
|
|
compileJava.options.release.set 17
|
|
javadoc.options.encoding = 'UTF-8'
|
|
javadoc.options.addStringOption('Xdoclint:none', '-quiet')
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
|
maven { url 'https://repo.codemc.io/repository/maven-public/' }
|
|
maven { url 'https://repo.minebench.de/' }
|
|
maven { url 'https://repo.alessiodp.com/releases/' }
|
|
maven { url 'https://jitpack.io' }
|
|
maven { url 'https://mvn-repo.arim.space/lesser-gpl3/' }
|
|
maven { url 'https://libraries.minecraft.net/' }
|
|
maven { url 'https://repo.william278.net/releases/' }
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.2'
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.2'
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.10.2'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
license {
|
|
header = rootProject.file('HEADER')
|
|
include '**/*.java'
|
|
newLine = true
|
|
}
|
|
|
|
processResources {
|
|
filesMatching(['**/*.json', '**/*.yml']) {
|
|
filter ReplaceTokens as Class, beginToken: '${', endToken: '}',
|
|
tokens: rootProject.ext.properties
|
|
}
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
version rootProject.version
|
|
archivesBaseName = "${rootProject.name}-${project.name.capitalize()}"
|
|
|
|
jar {
|
|
from '../LICENSE'
|
|
}
|
|
|
|
shadowJar {
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
archiveClassifier.set('')
|
|
}
|
|
|
|
// API publishing
|
|
if (['common', 'bukkit'].contains(project.name)) {
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
sourcesJar {
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
}
|
|
javadocJar {
|
|
destinationDirectory.set(file("$rootDir/target"))
|
|
}
|
|
shadowJar.dependsOn(sourcesJar, javadocJar)
|
|
|
|
publishing {
|
|
if (['common'].contains(project.name)) {
|
|
publications {
|
|
mavenJavaCommon(MavenPublication) {
|
|
groupId = 'net.william278.husksync'
|
|
artifactId = 'husksync-common'
|
|
version = "$rootProject.version"
|
|
artifact shadowJar
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
}
|
|
}
|
|
|
|
if (['bukkit'].contains(project.name)) {
|
|
publications {
|
|
mavenJavaBukkit(MavenPublication) {
|
|
groupId = 'net.william278.husksync'
|
|
artifactId = 'husksync-bukkit'
|
|
version = "$rootProject.version"
|
|
artifact shadowJar
|
|
artifact sourcesJar
|
|
artifact javadocJar
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
jar.dependsOn(shadowJar)
|
|
clean.delete "$rootDir/target"
|
|
}
|
|
|
|
logger.lifecycle("Building HuskSync ${version} by William278")
|
|
|
|
@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')
|
|
} |