Newer
Older
import org.apache.tools.ant.filters.ReplaceTokens
id 'io.quarkus'
}
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
implementation 'io.quarkus:quarkus-container-image-docker'
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
implementation 'io.quarkiverse.mybatis:quarkus-mybatis:1.0.7'
implementation 'io.quarkus:quarkus-grpc'
implementation 'io.quarkus:quarkus-hibernate-orm'
implementation 'io.quarkus:quarkus-flyway'
implementation 'io.quarkiverse.mybatis:quarkus-mybatis-plus:1.0.7'
implementation 'io.quarkus:quarkus-jdbc-postgresql'
implementation 'io.quarkus:quarkus-arc'
implementation 'io.quarkus:quarkus-resteasy-reactive'
testImplementation 'io.quarkus:quarkus-junit5'
}
group 'cz.mendelu'
version '1.0.0-SNAPSHOT'
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
compileOnly {
extendsFrom annotationProcessor
}
}
test {
systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager"
}
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << '-parameters'
}
compileTestJava {
options.encoding = 'UTF-8'
}
def getVersion = { projectName ->
def stdout = new ByteArrayOutputStream()
def stderr = new ByteArrayOutputStream()
try {
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
errorOutput = stderr
ignoreExitValue = true
workingDir "./$projectName"
}
def exitValue = execResult.exitValue
if (exitValue != 0) {
throw new Exception("Command exited with value: $exitValue")
}
} catch (Exception e) {
println "Command failed with error: ${stderr.toString().trim()}"
return 'no-tag'
}
def describe = stdout.toString().trim()
return describe.substring(describe.indexOf('_') + 1, describe.length())
}
ext {
gitVersion = getVersion()
dockerImageNamespace = 'dnaanalyser'
dockerRepository = 'sequence'
dockerImageTag = gitVersion.contains('-')
? 'latest'
: gitVersion
}
tasks.register("exportEnv") {
doLast {
File env = new File('.env')
env.write """DOCKER_NAMESPACE=$dockerImageNamespace
TAG=$dockerImageTag
"""
}
}
processResources {
include '**'
filter ReplaceTokens, tokens: [
'gitVersion': gitVersion,
'assemblyDate': Long.toString(System.currentTimeMillis())
]
task buildNativeImage(type: Exec) {
description = 'Builds a native image of the Quarkus application'
group = 'Build'
// Define the command to execute.
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine "${project.rootDir}\\gradlew.bat", "clean", "build", "-Dquarkus.package.type=native", "-Dquarkus.native.container-build=true", "-Dquarkus.container-image.build=true"
} else {
commandLine "${project.rootDir}/gradlew", "clean", "build", "-Dquarkus.package.type=native", "-Dquarkus.native.container-build=true", "-Dquarkus.container-image.build=true"
}
doFirst {
environment "QUARKUS_CONTAINER_IMAGE_GROUP", "${dockerImageNamespace}"
environment "QUARKUS_CONTAINER_IMAGE_NAME", "${dockerRepository}"
environment "QUARKUS_CONTAINER_IMAGE_TAG", "${dockerImageTag}"