This repository has been archived on 2023-10-27. You can view files and clone it, but cannot push or open issues or pull requests.
McGamerZone/build.gradle.kts
2021-07-12 21:46:08 +02:00

138 lines
3.7 KiB
Plaintext

import java.util.Optional as javaOptional
plugins {
`java-library`
`maven-publish`
kotlin("jvm") version "1.4.30-RC"
id("com.github.johnrengelman.shadow") version "6.1.0"
id("com.gorylenko.gradle-git-properties") version "2.2.2"
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
allprojects {
group = "zone.themcgamer"
version = "1.0-SNAPSHOT"
}
subprojects {
apply {
plugin("java-library")
plugin("kotlin")
plugin("com.github.johnrengelman.shadow")
plugin("com.gorylenko.gradle-git-properties")
plugin("maven-publish")
}
dependencies {
compileOnly(kotlin("stdlib-jdk8"))
compileOnly("org.jetbrains:annotations:20.1.0")
// lombok
compileOnly("org.projectlombok:lombok:1.18.16")
annotationProcessor("org.projectlombok:lombok:1.18.16")
testCompileOnly("org.projectlombok:lombok:1.18.16")
testAnnotationProcessor("org.projectlombok:lombok:1.18.16")
compileOnly("org.slf4j:slf4j-simple:1.7.30")
implementation("com.google.code.gson:gson:2.8.5")
implementation("commons-io:commons-io:2.6")
implementation("com.squareup.okhttp3:okhttp:4.10.0-RC1")
}
gitProperties {
customProperty("insane_module", name)
}
tasks {
compileJava {
options.compilerArgs.add("-parameters")
options.forkOptions.executable = "javac"
options.encoding = "UTF-8"
}
compileKotlin {
kotlinOptions.jvmTarget = "11";
}
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["java"])
}
}
repositories {
maven {
name = project.name
url = uri("https://repository.themcgamer.zone/repository/${project.name}/")
credentials {
username = System.getenv("NEXUS_USERNAME")
password = System.getenv("NEXUS_PASSWORD")
}
}
}
getPropertySafe("vcsImcPrivateToken").ifPresent { token ->
repositories {
maven {
url = uri("https://vcs.cnetwork.club/api/v4/projects/1/packages/maven")
credentials(HttpHeaderCredentials::class) {
name = "Private-Token"
value = token // the variable resides in ~/.gradle/gradle.properties
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
}
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
maven {
url = uri("https://repository.themcgamer.zone/repository/public/")
credentials {
username = getEnv("NEXUS_USERNAME").orElseGet {
getPropertySafe("mavenUsername")
.orElseThrow { IllegalArgumentException("Central repo not configured") }
}
password = getEnv("NEXUS_PASSWORD").orElseGet {
getPropertySafe("mavenPassword")
.orElseThrow { IllegalArgumentException("Central repo not configured") }
}
}
}
}
}
repositories {
mavenCentral()
}
fun getEnv(env: String): java.util.Optional<String> {
return javaOptional.ofNullable(System.getenv(env))
}
fun getPropertySafe(property: String): javaOptional<String> {
return if (project.hasProperty(property)) javaOptional.of(
project.property(property).toString()
) else javaOptional.empty()
}