From 5fa95276d4499115e5431984c3316994af257a10 Mon Sep 17 00:00:00 2001 From: Cato Olsen Date: Tue, 4 Jun 2024 14:45:24 +0200 Subject: [PATCH 1/3] Ny plugin dolly-java-conventions. --- plugins/java/build.gradle | 13 +++ plugins/java/settings.gradle | 0 .../main/groovy/dolly-java-conventions.gradle | 81 +++++++++++++++++++ settings.gradle | 2 + 4 files changed, 96 insertions(+) create mode 100644 plugins/java/build.gradle create mode 100644 plugins/java/settings.gradle create mode 100644 plugins/java/src/main/groovy/dolly-java-conventions.gradle diff --git a/plugins/java/build.gradle b/plugins/java/build.gradle new file mode 100644 index 00000000000..9ad7e26bbd4 --- /dev/null +++ b/plugins/java/build.gradle @@ -0,0 +1,13 @@ +plugins { + id "groovy-gradle-plugin" +} + +repositories { + gradlePluginPortal() +} + +dependencies { + implementation "io.spring.gradle:dependency-management-plugin:1.1.4" + implementation "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:5.0.0.4638" + implementation "org.springframework.boot:spring-boot-gradle-plugin:3.2.1" +} \ No newline at end of file diff --git a/plugins/java/settings.gradle b/plugins/java/settings.gradle new file mode 100644 index 00000000000..e69de29bb2d diff --git a/plugins/java/src/main/groovy/dolly-java-conventions.gradle b/plugins/java/src/main/groovy/dolly-java-conventions.gradle new file mode 100644 index 00000000000..ee03bb4d25f --- /dev/null +++ b/plugins/java/src/main/groovy/dolly-java-conventions.gradle @@ -0,0 +1,81 @@ +plugins { + id "io.spring.dependency-management" // See ../../../build.gradle for version. + id "jacoco" + id "java" + id "org.sonarqube" // See ../../../build.gradle for version. + id "org.springframework.boot" // See ../../../build.gradle for version. +} + +tasks.bootJar { + archiveFileName = "app.jar" +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +dependencies { + annotationProcessor 'org.projectlombok:lombok' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' + + compileOnly 'org.projectlombok:lombok' + + developmentOnly 'org.springframework.boot:spring-boot-devtools' + + implementation 'net.logstash.logback:logstash-logback-encoder:7.4' + implementation 'org.projectlombok:lombok' + implementation 'org.springframework.boot:spring-boot-starter-actuator' + + runtimeOnly 'io.micrometer:micrometer-registry-prometheus' + + testAnnotationProcessor 'org.projectlombok:lombok' + + testImplementation "org.junit.jupiter:junit-jupiter:5.10.1" + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +dependencyManagement { + applyMavenExclusions = false + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:2023.0.0" + } +} + +repositories { + mavenLocal() + mavenCentral() + maven { + name = "GitHubPackages" + url = uri('https://maven.pkg.github.com/navikt/maven-release') + credentials(PasswordCredentials) { + username 'token' + password System.getenv("NAV_TOKEN") + } + } +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + +sonarqube { + properties { + property "sonar.dynamicAnalysis", "reuseReports" + property "sonar.host.url", "https://sonarcloud.io" + property "sonar.java.coveragePlugin", "jacoco" + property "sonar.language", "java" + property "sonar.token", System.getenv("SONAR_TOKEN") + property "sonar.organization", "navikt" + property "sonar.project.monorepo.enabled", true + property "sonar.sourceEncoding", "UTF-8" + } +} + +tasks.test { + useJUnitPlatform() + jvmArgs '--add-opens', 'java.base/java.lang=ALL-UNNAMED' +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 50dbd51a797..9c5dda9f214 100644 --- a/settings.gradle +++ b/settings.gradle @@ -21,6 +21,8 @@ develocity { } } +includeBuild './plugins/java' + includeBuild './proxies/aareg-proxy' includeBuild './proxies/aareg-synt-services-proxy' includeBuild './proxies/arbeidsplassencv-proxy' From db93e1394c5c0c1f684ecc840157b65342854468 Mon Sep 17 00:00:00 2001 From: Cato Olsen Date: Tue, 4 Jun 2024 14:46:00 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Endrer=20budpro-service=20til=20=C3=A5=20te?= =?UTF-8?q?ste=20ny=20plugin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/budpro-service/build.gradle | 72 +------------------------------- 1 file changed, 1 insertion(+), 71 deletions(-) diff --git a/apps/budpro-service/build.gradle b/apps/budpro-service/build.gradle index d69af7c9477..d7c43b73561 100644 --- a/apps/budpro-service/build.gradle +++ b/apps/budpro-service/build.gradle @@ -1,64 +1,15 @@ plugins { - id 'java' - id 'org.springframework.boot' version '3.2.1' - id 'io.spring.dependency-management' version '1.1.4' - id "jacoco" - id "org.sonarqube" version "5.0.0.4638" + id "dolly-java-conventions" id("org.openrewrite.rewrite") version("6.6.4") } -bootJar { - archiveFileName = "app.jar" - mainClass = 'no.nav.dolly.budpro.BudproServiceApplication' -} - rewrite { activeRecipe("org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_2") } -configurations { - compileOnly { - extendsFrom annotationProcessor - } -} - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - } -} - -repositories { - mavenCentral() - mavenLocal() - maven { - name = "GitHubPackages" - url = uri('https://maven.pkg.github.com/navikt/maven-release') - credentials(PasswordCredentials) { - username 'token' - password System.getenv("NAV_TOKEN") - } - } -} - -dependencyManagement { - applyMavenExclusions = false - imports { - mavenBom "org.springframework.cloud:spring-cloud-dependencies:2023.0.0" - } -} - dependencies { rewrite('org.openrewrite.recipe:rewrite-spring:5.10.0') - annotationProcessor 'org.projectlombok:lombok' - annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' - - compileOnly 'org.projectlombok:lombok' - - developmentOnly 'org.springframework.boot:spring-boot-devtools' - - implementation 'net.logstash.logback:logstash-logback-encoder:7.4' implementation 'no.nav.testnav.libs:commands' implementation 'no.nav.testnav.libs:data-transfer-objects' implementation 'no.nav.testnav.libs:reactive-core' @@ -66,9 +17,7 @@ dependencies { implementation 'no.nav.testnav.libs:servlet-core' implementation 'no.nav.testnav.libs:servlet-insecure-security' implementation 'no.nav.testnav.libs:servlet-security' - implementation 'org.projectlombok:lombok' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' - implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' implementation 'org.springframework.boot:spring-boot-starter-security' @@ -76,31 +25,12 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.cloud:spring-cloud-starter-vault-config' - runtimeOnly 'io.micrometer:micrometer-registry-prometheus' - - testAnnotationProcessor 'org.projectlombok:lombok' - - testImplementation "org.junit.jupiter:junit-jupiter:5.10.1" - testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.testcontainers:junit-jupiter' } -test { - useJUnitPlatform() - jvmArgs '--add-opens', 'java.base/java.lang=ALL-UNNAMED' -} - sonarqube { properties { - property "sonar.dynamicAnalysis", "reuseReports" - property "sonar.host.url", "https://sonarcloud.io" - property "sonar.java.coveragePlugin", "jacoco" - property "sonar.language", "java" - property "sonar.token", System.getenv("SONAR_TOKEN") - property "sonar.organization", "navikt" - property "sonar.project.monorepo.enabled", true property "sonar.projectKey", "testnav-budpro-service" property "sonar.projectName", "testnav-budpro-service" - property "sonar.sourceEncoding", "UTF-8" } } From 6a94bc5c121d71e78159b12d686033f9d88e785f Mon Sep 17 00:00:00 2001 From: Cato Olsen Date: Tue, 4 Jun 2024 21:46:14 +0200 Subject: [PATCH 3/3] Manglet en includeBuild for plugin. --- apps/budpro-service/settings.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/budpro-service/settings.gradle b/apps/budpro-service/settings.gradle index 2220309e5e0..fcf71e60808 100644 --- a/apps/budpro-service/settings.gradle +++ b/apps/budpro-service/settings.gradle @@ -4,6 +4,8 @@ plugins { rootProject.name = 'budpro-service' +includeBuild '../../plugins/java' + includeBuild '../../libs/commands' includeBuild '../../libs/data-transfer-objects' includeBuild '../../libs/reactive-core'