mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 14:46:45 +01:00
280ced7904
Reason: " How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found."
149 lines
4.8 KiB
Groovy
149 lines
4.8 KiB
Groovy
import org.ajoberstar.grgit.Grgit
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath("com.github.jengelman.gradle.plugins:shadow:5.0.0")
|
|
classpath 'gradle.plugin.nl.javadude.gradle.plugins:license-gradle-plugin:0.14.0'
|
|
}
|
|
configurations.all {
|
|
resolutionStrategy {
|
|
force("org.ow2.asm:asm:7.3.1")
|
|
force("org.jetbrains:annotations:18.0.0")
|
|
}
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id "maven-publish"
|
|
id "org.ajoberstar.grgit" version "4.0.1"
|
|
}
|
|
|
|
group = "com.github.intellectualsites.plotsquared"
|
|
|
|
def rootVersion = "5"
|
|
def revision = ""
|
|
def buildNumber = ""
|
|
def date = ""
|
|
ext {
|
|
git = Grgit.open(dir: new File(rootDir.toString() + "/.git"))
|
|
date = git.head().getDate().format("yy.MM.dd")
|
|
revision = "-${git.head().abbreviatedId}"
|
|
parents = git.head().parentIds
|
|
if (project.hasProperty("buildnumber")) {
|
|
buildNumber = "$buildnumber"
|
|
} else {
|
|
index = -2042 // Offset to match CI
|
|
for (; parents != null && !parents.isEmpty(); index++) {
|
|
parents = git.getResolve().toCommit(parents.get(0)).getParentIds()
|
|
}
|
|
buildNumber = "${index}"
|
|
}
|
|
}
|
|
|
|
version = String.format("%s.%s", rootVersion, buildNumber)
|
|
|
|
description = rootProject.name
|
|
|
|
allprojects {
|
|
apply plugin: 'com.github.hierynomus.license'
|
|
gradle.projectsEvaluated {
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs << "-Xmaxerrs" << "1000"
|
|
}
|
|
}
|
|
license {
|
|
header rootProject.file('HEADER')
|
|
mapping 'java', 'SLASHSTAR_STYLE'
|
|
ext.year = 2020
|
|
includes(["**/*.java","**/*.js"])
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
apply(plugin: "java")
|
|
apply(plugin: "maven")
|
|
apply(plugin: "eclipse")
|
|
apply(plugin: "idea")
|
|
apply(plugin: "com.github.johnrengelman.shadow")
|
|
|
|
group = "com.github.intellectualsites.plotsquared"
|
|
|
|
clean.doFirst {
|
|
delete("../target")
|
|
}
|
|
|
|
dependencies {
|
|
implementation("com.sk89q.worldedit:worldedit-core:7.0.0") {
|
|
exclude(module: "bukkit-classloader-check")
|
|
exclude(module: "mockito-core")
|
|
exclude(module: "dummypermscompat")
|
|
}
|
|
compile group: 'org.json', name: 'json', version: '20190722'
|
|
|
|
implementation("net.kyori:text-api:3.0.2")
|
|
implementation("net.kyori:text-serializer-gson:3.0.2")
|
|
implementation("net.kyori:text-serializer-legacy:3.0.2")
|
|
implementation("net.kyori:text-serializer-plain:3.0.2")
|
|
implementation("com.google.guava:guava:21.0") {
|
|
because("Minecraft uses Guava 21 as of 1.13")
|
|
}
|
|
compileOnly("org.jetbrains:annotations:17.0.0")
|
|
compileClasspath("org.projectlombok:lombok:1.18.12")
|
|
testCompileOnly("org.projectlombok:lombok:1.18.12")
|
|
annotationProcessor("org.projectlombok:lombok:1.18.8")
|
|
testAnnotationProcessor("org.projectlombok:lombok:1.18.8")
|
|
testImplementation("junit:junit:4.13")
|
|
}
|
|
|
|
configurations.all {
|
|
resolutionStrategy {
|
|
force("junit:junit:4.12")
|
|
force("com.google.guava:guava:21.0")
|
|
force("org.jetbrains:annotations:18.0.0")
|
|
force("com.google.code.findbugs:jsr305:3.0.2")
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url = "https://maven.enginehub.org/repo/" }
|
|
maven { url = "https://repo.maven.apache.org/maven2" }
|
|
maven { url = "https://jitpack.io" }
|
|
}
|
|
|
|
shadowJar {
|
|
dependencies {
|
|
include(dependency("net.kyori:text-api:3.0.2"))
|
|
}
|
|
relocate("io.papermc.lib", "com.github.intellectualsites.plotsquared.bukkit.paperlib")
|
|
relocate("org.json", "com.github.intellectualsites.plotsquared.json")
|
|
// relocate('org.mcstats', 'com.plotsquared.stats')
|
|
archiveFileName = "${parent.name}-${project.name}-${parent.version}.jar"
|
|
destinationDirectory = file "../target"
|
|
}
|
|
}
|
|
|
|
task aggregatedJavadocs(type: Javadoc, description: "Generate javadocs from all child projects as if it was a single project", group: "Documentation") {
|
|
destinationDir = file("./docs/javadoc")
|
|
title = "$project.name $version API"
|
|
options.author true
|
|
options.links "http://docs.spring.io/spring/docs/4.3.x/javadoc-api/", "http://docs.oracle.com/javase/8/docs/api/", "http://docs.spring.io/spring-ws/docs/2.3.0.RELEASE/api/", "http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/apidocs/"
|
|
options.addStringOption("Xdoclint:none", "-quiet")
|
|
|
|
delete("./docs")
|
|
|
|
subprojects.each { proj ->
|
|
proj.tasks.withType(Javadoc).each { javadocTask ->
|
|
source += javadocTask.source
|
|
classpath += javadocTask.classpath
|
|
excludes += javadocTask.excludes
|
|
includes += javadocTask.includes
|
|
}
|
|
}
|
|
}
|