SpaceUp-Server/build.gradle

233 lines
8.3 KiB
Groovy

plugins {
id "org.jetbrains.kotlin.jvm" version "${kotlinVersion}"
id "org.jetbrains.kotlin.kapt" version "${kotlinVersion}"
id "org.jetbrains.kotlin.plugin.allopen" version "${kotlinVersion}"
id "com.github.johnrengelman.shadow" version "8.1.1"
id "org.sonarqube" version "4.4.1.3373"
id "nebula.lint" version "18.1.0" // 18.0.0 works only with Gradle 8.x
//id "io.micronaut.aot" version "3.6.5"
id 'io.micronaut.application' version '4.2.1'
id 'project-report'
id "application"
id 'maven-publish'
}
version "0.31.3"
group "technology.iatlas.spaceup"
repositories {
mavenCentral()
maven {
url = uri("https://oss.sonatype.org/content/repositories/snapshots")
url = uri("https://artifactory.iatlas.dev/releases")
}
}
ext {
uploadUrl = "https://artifactory.iatlas.dev/releases/"
}
// for dependencies that are needed for development only
if(project.hasProperty("gradleEnv") && project.getProperty("gradleEnv").toLowerCase().contains("dev")) {
println("Running dev configuration")
setVersion(getVersion() + "-SNAPSHOT")
project.ext.uploadUrl = "https://artifactory.iatlas.dev/snapshots/"
}
gradleLint.rules = ['dependency-parentheses', 'dependency-tuple', 'dependency-all']
configurations {
// for dependencies that are needed for development only
developmentOnly
println("Version: ${getVersion()}")
println("Upload url: ${project.ext.uploadUrl}")
}
dependencies {
kapt(platform("io.micronaut.platform:micronaut-platform:$micronautVersion"))
kapt "io.micronaut:micronaut-inject-java"
//kapt "io.micronaut:micronaut-validation:3.9.4"
kapt "io.micronaut:micronaut-graal"
kapt 'io.micronaut.openapi:micronaut-openapi'
kapt 'io.micronaut.security:micronaut-security-annotations'
compileOnly(platform("io.micronaut.platform:micronaut-platform:"))
compileOnly 'org.graalvm.nativeimage:svm:23.1.1'
implementation(platform("io.micronaut.platform:micronaut-platform"))
runtimeOnly "io.micronaut:micronaut-management:"
implementation "io.micronaut:micronaut-jackson-databind"
implementation "io.swagger.core.v3:swagger-annotations"
implementation "io.micronaut:micronaut-inject"
//implementation "io.micronaut:micronaut-validation:3.9.4"
implementation 'io.micronaut.rxjava3:micronaut-rxjava3'
implementation 'io.micronaut.kotlin:micronaut-kotlin-runtime'
implementation "io.micronaut:micronaut-runtime"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "io.micronaut:micronaut-http-client"
implementation "io.micronaut.reactor:micronaut-reactor"
implementation "io.micronaut.tracing:micronaut-tracing-annotation"
implementation 'io.micronaut.security:micronaut-security'
implementation 'io.micronaut.security:micronaut-security-jwt'
implementation 'io.micronaut.kotlin:micronaut-kotlin-extension-functions'
implementation 'io.micronaut.mongodb:micronaut-mongo-reactive'
implementation "io.micronaut:micronaut-websocket"
implementation "io.micronaut.cache:micronaut-cache-core"
implementation "io.micronaut.cache:micronaut-cache-caffeine"
developmentOnly "io.micronaut.controlpanel:micronaut-control-panel-ui"
developmentOnly "io.micronaut.controlpanel:micronaut-control-panel-management"
annotationProcessor "io.micronaut.validation:micronaut-validation-processor"
implementation "io.micronaut.validation:micronaut-validation"
implementation "io.reactivex.rxjava3:rxkotlin:3.0.1"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}"
implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
//implementation 'javax.annotation:javax.annotation-api:1.3.2'
implementation "io.micronaut.tracing:micronaut-tracing-jaeger"
implementation "io.opentracing.brave:brave-opentracing:1.0.0"
implementation 'io.zipkin.brave:brave-context-log4j2:5.16.0'
runtimeOnly "io.zipkin.brave:brave-instrumentation-httpclient:5.16.0"
runtimeOnly "io.zipkin.reporter:zipkin-reporter:1.1.2"
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3'
implementation 'com.github.mwiede:jsch:0.2.13'
//implementation('org.litote.kmongo:kmongo:4.7.2')
implementation 'org.litote.kmongo:kmongo-coroutine:4.11.0'
implementation "com.fasterxml.jackson.module:jackson-module-kotlin"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jdk8"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310"
// Shell commands
implementation 'com.lordcodes.turtle:turtle:0.9.0'
// https://mvnrepository.com/artifact/org.jasypt/jasypt
// used for De-Encryption
implementation 'org.jasypt:jasypt:1.9.3'
// My stuff
implementation "technology.iatlas.sws:sws:1.5.1-SNAPSHOT"
implementation "org.codehaus.janino:janino:3.1.10"
implementation 'ch.qos.logback:logback-classic:1.4.14'
implementation 'org.slf4j:log4j-over-slf4j:2.0.9'
//runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly 'com.fasterxml.jackson.module:jackson-module-kotlin:2.16.0'
runtimeOnly 'io.netty:netty-tcnative:2.0.62.Final'
runtimeOnly 'io.netty:netty-tcnative-boringssl-static:2.0.62.Final'
implementation "org.reflections:reflections:0.10.2"
kaptTest(enforcedPlatform("io.micronaut.platform:micronaut-platform:$micronautVersion"))
kaptTest "io.micronaut:micronaut-inject-java:$micronautVersion"
testImplementation(enforcedPlatform("io.micronaut.platform:micronaut-platform:$micronautVersion"))
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.1'
testImplementation "io.micronaut.test:micronaut-test-junit5:4.1.0"
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.1'
// Docker Testcontainer
testImplementation 'org.testcontainers:testcontainers:1.19.3'
}
test.classpath += configurations.developmentOnly
mainClassName = "technology.iatlas.spaceup.ApplicationKt"
// use JUnit 5 platform
test {
useJUnitPlatform()
}
kotlin {
jvmToolchain(17)
}
allOpen {
annotation("io.micronaut.aop.Around")
}
kapt {
arguments {
arg("micronaut.processing.incremental", true)
arg("micronaut.processing.annotations", "technology.iatlas.spaceup.*")
arg("micronaut.processing.group", "technology.iatlas.spaceup")
arg("micronaut.processing.module", "SpaceUp-Server")
arg("micronaut.openapi.views.spec",
"redoc.enabled=true,rapidoc.enabled=true," +
"swagger-ui.enabled=true,swagger-ui.theme=material")
}
}
tasks.withType(PublishToMavenRepository) { task ->
dependsOn("assemble")
}
def generatedVersionDir = "${buildDir}/generated-version"
sourceSets {
main {
output.dir(generatedVersionDir, builtBy: 'generatedVersion')
}
}
tasks.register("generatedVersion") {
doLast {
def propertiesFile = file "$generatedVersionDir/version.properties"
propertiesFile.parentFile.mkdirs()
def properties = new Properties()
properties.setProperty("version", rootProject.version.toString())
propertiesFile.withWriter { properties.store(it, null) }
}
}
processResources {
dependsOn tasks.named("generatedVersion")
dependsOn tasks.named("projectReport")
//dependsOn tasks.named("asciidoctor")
}
shadowJar {
//minimize()
mergeServiceFiles()
}
tasks.withType(JavaExec) {
classpath += configurations.developmentOnly
jvmArgs('-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
if (gradle.startParameter.continuous) {
systemProperties(
'micronaut.io.watch.restart':'true',
'micronaut.io.watch.enabled':'true',
"micronaut.io.watch.paths":"src/main"
)
}
}
graalvmNative {
binaries {
main {
imageName.set('SpaceUp-Server')
buildArgs.add('--verbose')
}
}
}
publishing {
publications {
maven(MavenPublication) {
artifact("build/libs/SpaceUp-$version"+"-all.jar") {
extension 'jar'
}
}
}
repositories {
maven {
name "Maven"
url project.ext.uploadUrl
credentials {
username "${nexusUsername}"
password "${nexusPassword}"
}
}
}
}