205 lines
5.9 KiB
Groovy
205 lines
5.9 KiB
Groovy
import java.nio.charset.StandardCharsets
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.bmuschko:gradle-nexus-plugin:2.3.1'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'checkstyle'
|
|
id 'com.github.hierynomus.license' version '0.15.0'
|
|
id 'java-library'
|
|
id 'com.github.johnrengelman.shadow' version '6.1.0'
|
|
id 'de.marcphilipp.nexus-publish' version '0.4.0'
|
|
id 'net.ltgt.errorprone' version '1.3.0'
|
|
}
|
|
|
|
apply from: 'scripts/dependencies.gradle'
|
|
|
|
checkstyle {
|
|
configFile file('config/checkstyle/checkstyle.xml')
|
|
}
|
|
|
|
gradle.taskGraph.whenReady {
|
|
gradle.taskGraph.allTasks.each {
|
|
if (it.project.name.contains('example')) {
|
|
it.onlyIf {
|
|
project.hasProperty('compile-examples')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
apply plugin: 'idea'
|
|
apply plugin: 'checkstyle'
|
|
apply plugin: 'com.github.hierynomus.license'
|
|
|
|
group = 'cloud.commandframework'
|
|
version = '1.2.0'
|
|
description = 'Command framework and dispatcher for the JVM'
|
|
|
|
/* Disable checkstyle on tests */
|
|
project.gradle.startParameter.excludedTaskNames.add('checkstyleTest')
|
|
|
|
license {
|
|
header rootProject.file('HEADER')
|
|
mapping 'java', 'DOUBLESLASH_STYLE'
|
|
includes(["**/*.java"])
|
|
}
|
|
|
|
build.dependsOn(checkstyleMain)
|
|
}
|
|
|
|
subprojects {
|
|
apply plugin: 'java'
|
|
apply plugin: 'java-library'
|
|
apply plugin: 'signing'
|
|
apply plugin: 'de.marcphilipp.nexus-publish'
|
|
apply plugin: 'net.ltgt.errorprone'
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
java {
|
|
withSourcesJar()
|
|
withJavadocJar()
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.compilerArgs << "-Xlint:all" << "-Xlint:-processing" << "-Werror"
|
|
options.errorprone {
|
|
/* These are just annoying */
|
|
disable(
|
|
"JdkObsolete",
|
|
"FutureReturnValueIgnored",
|
|
"ImmutableEnumChecker",
|
|
"StringSplitter",
|
|
"EqualsGetClass",
|
|
"CatchAndPrintStackTrace"
|
|
)
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
jcenter()
|
|
maven {
|
|
/* Sonatype Snapshots */
|
|
url = 'https://oss.sonatype.org/content/repositories/snapshots'
|
|
}
|
|
maven {
|
|
/* ViaVersion, used for adventure */
|
|
url = 'https://repo.viaversion.com/'
|
|
}
|
|
maven {
|
|
/* Velocity, used for cloud-velocity */
|
|
url = 'https://repo.velocitypowered.com/snapshots/'
|
|
}
|
|
maven {
|
|
/* The Minecraft repository, used for cloud-brigadier */
|
|
url = 'https://libraries.minecraft.net/'
|
|
}
|
|
maven {
|
|
/* The current Sponge repository */
|
|
url = 'https://repo-new.spongepowered.org/repository/maven-public/'
|
|
}
|
|
maven {
|
|
/* The Spigot repository, used for cloud-bukkit */
|
|
url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
|
|
}
|
|
maven {
|
|
/* The paper repository, used for cloud-paper */
|
|
url = 'https://papermc.io/repo/repository/maven-public/'
|
|
}
|
|
maven {
|
|
/* The NukkitX repository, used for cloud-cloudburst */
|
|
url = 'https://repo.nukkitx.com/maven-snapshots'
|
|
}
|
|
maven {
|
|
/* JitPack, used for random dependencies */
|
|
url = 'https://jitpack.io'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly "org.checkerframework:checker-qual:${vers['checker-qual']}"
|
|
api "io.leangen.geantyref:geantyref:${vers['geantyref']}"
|
|
testImplementation "org.junit.jupiter:junit-jupiter-engine:${vers['jupiter-engine']}"
|
|
errorprone "com.google.errorprone:error_prone_core:${vers['errorprone']}"
|
|
errorproneJavac "com.google.errorprone:javac:9+181-r4173-1"
|
|
}
|
|
|
|
nexusPublishing {
|
|
repositories {
|
|
sonatype()
|
|
}
|
|
}
|
|
|
|
sourceCompatibility = '1.8'
|
|
|
|
[JavaCompile, Javadoc].forEach { taskType ->
|
|
tasks.withType(taskType) {
|
|
options.encoding(StandardCharsets.UTF_8.name())
|
|
}
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
from components.java
|
|
|
|
pom {
|
|
name = project.name
|
|
url = 'https://github.com/Incendo/cloud'
|
|
description = project.description
|
|
|
|
developers {
|
|
developer {
|
|
id = 'Sauilitired'
|
|
name = 'Alexander Söderberg'
|
|
url = 'https://alexander-soderberg.com'
|
|
email = 'contact@alexander-soderberg.com'
|
|
}
|
|
}
|
|
|
|
issueManagement {
|
|
system = 'GitHub Issues'
|
|
url = 'https://github.com/Incendo/cloud/issues'
|
|
}
|
|
|
|
licenses {
|
|
license {
|
|
name = 'MIT License'
|
|
url = 'https://opensource.org/licenses/MIT'
|
|
}
|
|
}
|
|
|
|
scm {
|
|
connection = 'scm:git@github.com:Incendo/cloud.git'
|
|
developerConnection = 'scm:git@github.com:Incendo/cloud.git'
|
|
url = 'https://github.com/Incendo/cloud/'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
signing {
|
|
required {
|
|
project.hasProperty('signing.keyId') && (gradle.taskGraph.hasTask(':publish')
|
|
|| gradle.taskGraph.hasTask(':publishToSonatype')
|
|
|| gradle.taskGraph.hasTask(':publishToMavenLocal'))
|
|
}
|
|
sign publishing.publications.mavenJava
|
|
}
|
|
|
|
}
|