233 lines
8.3 KiB
Groovy
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}"
|
|
}
|
|
}
|
|
}
|
|
}
|