1
0
mirror of https://github.com/sciwhiz12/Janitor.git synced 2024-11-14 04:21:25 +00:00
Janitor/build.gradle
sciwhiz12 199b40b160
Majorly refactor project structure
* Split project into two subprojects, for core and moderation
 * Move to modular system using Java's ServiceLoader
 * Improve messages system to allow message definitions in modules
 * Adjust some messages for brevity
2020-11-23 11:13:09 +08:00

155 lines
4.4 KiB
Groovy

buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath group: 'org.ajoberstar.grgit', name: 'grgit-gradle', version: grgit_version
classpath group: 'com.github.jengelman.gradle.plugins', name: 'shadow', version: shadow_version
}
}
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'org.ajoberstar.grgit'
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'maven-publish'
version = getVersion()
println("Version: ${version}")
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
dependencies {
implementation project(':core')
implementation project(path: ':core', configuration: 'api')
runtimeOnly project(':moderation')
runtimeOnly project(path: ':moderation', configuration: 'api')
}
application {
mainClassName = 'sciwhiz12.janitor.BotStartup'
}
jar.finalizedBy 'shadowJar'
shadowJar {
exclude 'META-INF/NOTICE**'
exclude 'META-INF/LICENSE**'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/proguard/**'
exclude 'META-INF/maven/**'
classifier ''
includeEmptyDirs false
}
allprojects {
apply plugin: 'java'
group = 'sciwhiz12.janitor'
version = rootProject.version
repositories {
mavenCentral()
jcenter()
maven {
name = "Minecraft Libraries"
url = "https://libraries.minecraft.net"
}
}
}
subprojects {
sourceSets { api }
configurations {
apiImplementation.extendsFrom apiDependency
api {
canBeConsumed = true
canBeResolved = true
extendsFrom apiDependency
}
implementation.extendsFrom apiImplementation, api
'default' {
extendsFrom api, apiDependency
}
}
dependencies {
api sourceSets.api.output
testImplementation group: 'junit', name: 'junit', version: junit_version
}
jar {
from sourceSets.api.output
finalizedBy 'apiJar', 'sourcesJar'
}
task apiJar(type: Jar, dependsOn: apiClasses) {
from sourceSets.api.allJava
classifier "api"
}
task sourcesJar(type: Jar, dependsOn: classes) {
from sourceSets.main.allSource
from sourceSets.api.allSource
classifier "sources"
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
project(':core') {
apply plugin: 'com.github.johnrengelman.shadow'
archivesBaseName = 'janitor-core'
dependencies {
apiDependency group: 'net.dv8tion', name: 'JDA', version: jda_version
apiDependency group: 'com.electronwill.night-config', name: 'toml', version: nightconfig_version
apiDependency group: 'net.sf.jopt-simple', name: 'jopt-simple', version: jopt_version
apiDependency group: 'com.google.guava', name: 'guava', version: guava_version
apiDependency group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: jackson_version
apiDependency group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: jackson_version
apiDependency group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jackson_version
apiDependency group: 'org.apache.logging.log4j', name: 'log4j-to-slf4j', version: log4j_bridge_version
apiDependency group: 'ch.qos.logback', name: 'logback-classic', version: logback_version
apiDependency group: 'com.mojang', name: 'brigadier', version: brigadier_version
}
shadowJar.configurations = [project.configurations.api]
jar.finalizedBy 'shadowJar'
}
project(':moderation') {
archivesBaseName = 'janitor-moderation'
dependencies {
apiDependency project(path: ':core', configuration: 'api')
}
}
def getVersion() {
try {
String raw_version = grgit.describe(longDescr: true, tags: true)
def versionSep = raw_version.split "-"
def startVer = versionSep[0].substring(1)
return startVer + "." + versionSep[1]
} catch (Exception e) {
def ver = 'unknown'
if (System.getenv("GITHUB_RUN_NUMBER") != null) ver = System.getenv("GITHUB_RUN_NUMBER")
logger.error("Error getting version information, defaulting to '${ver}': {}", e.getMessage())
return ver
}
}