mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-19 14:59:21 +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 * added postgres support (closes https://github.com/WiIIiam278/HuskSync/issues/212) * add support for mongodb atlas, added atlas and postrgres to docs, update the config example in docs, also updates mongodb driver bc apparently i was special and very very out of data * Rework how mongo connections are handled, **breaks config for mongo only**, allows for MongoDB Atlas, normal MongoDb AND MongoDB replica sets via the parameters in advanced mongo settings, added try and catch on all mongo operations so that it actually throws instead of a cutsie little warning * small doc change * whoops forgot to instantiate MongoCollectionHelper, and added missing step from docs for atlas users * why thats a tad embarrassing (grammar mistake) * add cluster id to `/husksync status`, shows "MongoDB Atlas" in status if using mongodb atlas --------- Co-authored-by: William <will27528@gmail.com>
178 lines
5.6 KiB
Groovy
178 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 'postgres_driver_version', postgres_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 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'
|
|
}
|
|
// If grgit DOES exist, get tag for this commit
|
|
def tag = grgit.tag.list().find { it.commit.id == grgit.head().id }
|
|
return '-' + grgit.head().abbreviatedId + (grgit.status().clean ? '' : '-indev')
|
|
}
|