diff options
Diffstat (limited to 'old-build.gradle.kts')
-rw-r--r-- | old-build.gradle.kts | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/old-build.gradle.kts b/old-build.gradle.kts new file mode 100644 index 0000000..fa79c4d --- /dev/null +++ b/old-build.gradle.kts @@ -0,0 +1,206 @@ +@file:Suppress("UNUSED_VARIABLE") + +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import org.jetbrains.kotlin.gradle.dsl.Coroutines.ENABLE +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin +import java.io.PrintWriter + +val firstImport = false +val stdout = PrintWriter(File("$rootDir/gradle-output.txt")) + +buildscript { + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51") + } +} + +group = "io.dico" +version = "0.1" + +inline fun <reified T : Plugin<out Project>> Project.apply() = + (this as PluginAware).apply<T>() + +allprojects { + apply<JavaPlugin>() + + repositories { + mavenCentral() + maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots") + maven("https://hub.spigotmc.org/nexus/content/repositories/sonatype-nexus-snapshots") + } + dependencies { + val spigotVersion = "1.13-R0.1-SNAPSHOT" + compile("org.bukkit:bukkit:$spigotVersion") { isTransitive = false } + compile("org.spigotmc:spigot-api:$spigotVersion") { isTransitive = false } + + compile("net.sf.trove4j:trove4j:3.0.3") + testCompile("junit:junit:4.12") + } +} + +project(":dicore3:dicore3-command") { + apply<KotlinPlatformJvmPlugin>() + + kotlin.experimental.coroutines = ENABLE + + dependencies { + compile("org.jetbrains.kotlinx:kotlinx-coroutines-core:0.23.4") + compile(kotlin("reflect", version = "1.2.50")) + compile(kotlin("stdlib-jdk8", version = "1.2.51")) + compile(project(":dicore3:dicore3-core")) + compile("com.thoughtworks.paranamer:paranamer:2.8") + } +} + + +plugins { + kotlin("jvm") version "1.2.51" + id("com.github.johnrengelman.plugin-shadow") version "2.0.3" +} + +kotlin.experimental.coroutines = ENABLE + +repositories { + maven("https://dl.bintray.com/kotlin/exposed") +} + +dependencies { + compile(project(":dicore3:dicore3-core")) + compile(project(":dicore3:dicore3-command")) + compile(kotlin("stdlib-jdk8")) + + compile("org.jetbrains.exposed:exposed:0.10.3") + compile("org.jetbrains.kotlinx:kotlinx-coroutines-core:0.23.4") + compile("com.zaxxer:HikariCP:3.2.0") + compile("com.h2database:h2:1.4.197") + + val jacksonVersion = "2.9.6" + compile("com.fasterxml.jackson.core:jackson-core:$jacksonVersion") + compile("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") + compile("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonVersion") + compile("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$jacksonVersion") + //compile("org.yaml:snakeyaml:1.19") + + compile("org.slf4j:slf4j-api:1.7.25") + compile("ch.qos.logback:logback-classic:1.2.3") +} + +tasks { + val serverDir = "$rootDir/debug" + val jar by getting(Jar::class) + val kotlinStdlibJar by creating(Jar::class) { + destinationDir = file("$serverDir/lib") + archiveName = "kotlin-stdlib.jar" + packageDependencies("kotlin-stdlib-jdk8") + } + + val debugEnvironment by creating(Exec::class) { + + } + + val releaseJar by creating(ShadowJar::class) { + destinationDir = file("$serverDir/plugins") + baseName = "parcels2-release" + + with(jar) + + packageArtifacts( + "jackson-core", + "jackson-databind", + "jackson-module-kotlin", + "jackson-annotations", + "jackson-dataformat-yaml", + "snakeyaml", + + "slf4j-api", + "logback-core", + "logback-classic", + + //"h2", + "HikariCP", + "kotlinx-coroutines-core", + "kotlinx-coroutines-core-common", + "atomicfu-common", + "exposed", + + "dicore3-core", + "dicore3-command", + "paranamer", + + "trove4j", + "joda-time", + + "annotations", + "kotlin-stdlib-common", + "kotlin-stdlib", + "kotlin-stdlib-jdk7", + "kotlin-stdlib-jdk8", + "kotlin-reflect" + ) + + relocate("org.yaml.snakeyaml", "io.dico.parcels2.util.snakeyaml") + + manifest.attributes["Class-Path"] = "lib/kotlin-stdlib.jar" + dependsOn(kotlinStdlibJar) + } + +} + +allprojects { + tasks.filter { it is Jar }.forEach { it.group = "artifacts" } +} + +stdout.flush() +stdout.close() + +fun Jar.packageDependencies(vararg names: String) { + if (!firstImport) { + from(*project.configurations.compile.resolvedConfiguration.firstLevelModuleDependencies + .filter { it.moduleName in names } + .flatMap { it.allModuleArtifacts } + .map { it.file } + .map(::zipTree) + .toTypedArray() + ) + } +} + +fun Jar.packageDependency(name: String, configure: ModuleDependency.() -> Unit) { + if (!firstImport) { + val configuration = project.configurations.compile.copyRecursive() + + configuration.dependencies.removeIf { + if (it is ModuleDependency && it.name == name) { + it.configure() + false + } else true + } + + from(*configuration.resolvedConfiguration.resolvedArtifacts + .map { it.file } + .map(::zipTree) + .toTypedArray()) + } +} + +@Suppress("IMPLICIT_CAST_TO_ANY") +fun Jar.packageArtifacts(vararg names: String) { + if (!firstImport) { + from(*project.configurations.compile.resolvedConfiguration.firstLevelModuleDependencies + .flatMap { dep -> dep.allModuleArtifacts.map { dep to it } } + .filter { pair -> + val (dep, art) = pair + val id = art.moduleVersion.id + (id.name in names).also { + val artName = art.moduleVersion.id.let {"${it.group}:${it.name}:${it.version}"} + val depName = dep.let { "${it.moduleGroup}:${it.moduleName}:${it.moduleVersion}" } + val name = "$artName \n from $depName" + stdout.println("${if (it) "Including" else "Not including"} artifact $name") + } + } + .map { pair -> pair.second.file } + .map { if (it.isDirectory()) it else zipTree(it) } + .toTypedArray()) + } +} |