oblak/build.gradle
Alexander Söderberg d6ccc1d59b 🧹 Clean up the gradle build scripts a little
Changes:
- Move all dependency versions to a shared file
- Order the projects in settings.gradle
2020-10-24 19:52:44 +02:00

183 lines
5.1 KiB
Groovy

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'
}
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.1.0-SNAPSHOT'
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'
test {
useJUnitPlatform()
}
java {
withSourcesJar()
withJavadocJar()
}
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.spongepowered.org/maven'
}
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']}"
}
nexusPublishing {
repositories {
sonatype()
}
}
sourceCompatibility = '1.8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
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
}
}