Skip to content

Commit

Permalink
Merge pull request #48 from navikt/update-jar-plugin-39c0c98
Browse files Browse the repository at this point in the history
Oppdater buildSrc og jar plugin
  • Loading branch information
chris-santa authored Jan 8, 2025
2 parents 7419aa2 + 3af1def commit f65d684
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 12 deletions.
11 changes: 5 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
FROM gcr.io/distroless/java17-debian11
COPY build/libs/tms-varsel-api-all.jar app/app.jar
ENV PORT=8080
EXPOSE $PORT
WORKDIR app
CMD ["app.jar"]
FROM ghcr.io/navikt/baseimages/temurin:21

ENV JAVA_OPTS='-XX:MaxRAMPercentage=75'

COPY build/libs/*.jar ./
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
plugins {
kotlin("jvm").version(Kotlin.version)

id(Shadow.pluginId) version (Shadow.version)
id(TmsJarBundling.plugin)

application
}

kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

Expand Down
18 changes: 17 additions & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
plugins {
`kotlin-dsl`
`maven-publish`
}

repositories {
Expand All @@ -8,6 +9,21 @@ repositories {

kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

gradlePlugin {
plugins {
create("jar-bundling") {
id = "no.nav.tms.jar-bundling"
implementationClass = "JarBundling"
}
}
}

publishing {
repositories {
mavenLocal()
}
}
72 changes: 72 additions & 0 deletions buildSrc/src/main/kotlin/jarBundling.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import org.gradle.api.DefaultTask
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaApplication
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.TaskAction
import org.gradle.jvm.tasks.Jar
import java.io.File

// Managed by tms-dependency-admin.

abstract class JarBundling : Plugin<Project> {

override fun apply(target: Project) {

val configureTask = target.tasks.register("configureJar", ConfigureJarTask::class.java) {
this.application = target

val classes = target.tasks.named("classes")

dependsOn(classes)
}

val packageTask = target.tasks.register("packageJar", BundleJarsTask::class.java) {
this.application = target
}

target.tasks.withType(Jar::class.java) {
dependsOn(configureTask)
finalizedBy(packageTask)
}
}
}

abstract class ConfigureJarTask : DefaultTask() {
@Input
lateinit var application: Project

@TaskAction
fun action() {
application.tasks.withType(Jar::class.java) {

val javaApplication = application.extensions.getByType(JavaApplication::class.java)

val mainClassName = javaApplication.mainClass

archiveBaseName.set("app")
manifest {
val classpath = application.configurations.getByName("runtimeClasspath")
attributes["Main-Class"] = mainClassName
attributes["Class-Path"] = classpath.joinToString(separator = " ") {
it.name
}
}
}
}
}

abstract class BundleJarsTask : DefaultTask() {
@Input
lateinit var application: Project

@TaskAction
fun action() {
val classpath = application.configurations.getByName("runtimeClasspath")

classpath.forEach {
val file = File("${application.layout.buildDirectory.get()}/libs/${it.name}")
if (!file.exists()) it.copyTo(file)
}
}
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 0 additions & 2 deletions src/main/resources/logback.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<appender name="metrics" class="io.prometheus.client.logback.InstrumentedAppender"/>
<appender name="secureLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/secure-logs/secure.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
Expand All @@ -24,7 +23,6 @@

<root level="INFO">
<appender-ref ref="stdout_json"/>
<appender-ref ref="metrics"/>
</root>
<logger name="secureLog" level="INFO" additivity="false">
<appender-ref ref="secureLog"/>
Expand Down

0 comments on commit f65d684

Please sign in to comment.