2021-05-10 17:01:34 +00:00
|
|
|
plugins {
|
|
|
|
id 'java'
|
2024-11-27 09:47:52 +00:00
|
|
|
id 'org.springframework.boot' version '3.4.0'
|
2024-09-28 06:58:17 +00:00
|
|
|
id 'io.spring.dependency-management' version '1.1.6'
|
|
|
|
id 'org.graalvm.buildtools.native' version '0.10.3'
|
|
|
|
id 'org.cyclonedx.bom' version '1.10.0'
|
|
|
|
id 'io.spring.javaformat' version '0.0.43'
|
2024-01-31 12:45:31 +00:00
|
|
|
id "io.spring.nohttp" version "0.0.11"
|
2025-01-31 10:21:38 +00:00
|
|
|
id("pl.allegro.tech.build.axion-release") version "1.18.7"
|
2025-01-31 17:28:10 +00:00
|
|
|
id('maven-publish')
|
2021-05-10 17:01:34 +00:00
|
|
|
}
|
|
|
|
|
2025-01-31 10:21:38 +00:00
|
|
|
version = scmVersion.version
|
|
|
|
|
2021-05-10 17:01:34 +00:00
|
|
|
apply plugin: 'java'
|
2024-01-31 12:45:31 +00:00
|
|
|
apply plugin: 'checkstyle'
|
2024-01-30 07:57:47 +00:00
|
|
|
apply plugin: 'io.spring.javaformat'
|
2024-01-29 15:49:35 +00:00
|
|
|
|
2024-01-30 07:57:47 +00:00
|
|
|
gradle.startParameter.excludedTaskNames += [ "checkFormatAot", "checkFormatAotTest" ]
|
2021-05-10 17:01:34 +00:00
|
|
|
|
|
|
|
group = 'org.springframework.samples'
|
2024-11-27 09:47:52 +00:00
|
|
|
version = '3.4.0'
|
2024-02-29 10:09:17 +00:00
|
|
|
|
2025-01-31 17:28:10 +00:00
|
|
|
def nexusUsername = project.hasProperty('nexusUsername') ? project.nexusUsername : System.getenv('NEXUS_USERNAME')
|
|
|
|
def nexusPassword = project.hasProperty('nexusPassword') ? project.nexusPassword : System.getenv('NEXUS_PASSWORD')
|
2024-02-29 10:09:17 +00:00
|
|
|
java {
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
|
|
}
|
2021-05-10 17:01:34 +00:00
|
|
|
|
|
|
|
repositories {
|
2025-01-31 17:28:10 +00:00
|
|
|
mavenCentral()
|
2021-05-10 17:01:34 +00:00
|
|
|
}
|
|
|
|
|
2025-01-31 17:28:10 +00:00
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
mavenJava(MavenPublication) {
|
|
|
|
from components.java
|
|
|
|
artifact file("build/libs/spring-application-${version}.jar")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven {
|
|
|
|
name = "maven-releases"
|
|
|
|
url 'http://localhost:8081/repository/maven-releases/'
|
|
|
|
allowInsecureProtocol = true
|
|
|
|
credentials {
|
|
|
|
username nexusUsername
|
|
|
|
password nexusPassword
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-11-27 09:47:52 +00:00
|
|
|
ext.checkstyleVersion = "10.20.1"
|
2024-09-28 06:58:17 +00:00
|
|
|
ext.springJavaformatCheckstyleVersion = "0.0.43"
|
2024-11-27 09:47:52 +00:00
|
|
|
ext.webjarsLocatorLiteVersion = "1.0.1"
|
2021-12-16 11:33:27 +00:00
|
|
|
ext.webjarsFontawesomeVersion = "4.7.0"
|
2024-05-25 15:36:13 +00:00
|
|
|
ext.webjarsBootstrapVersion = "5.3.3"
|
2021-05-10 17:01:34 +00:00
|
|
|
|
|
|
|
dependencies {
|
2024-11-27 09:47:52 +00:00
|
|
|
// Workaround for AOT issue (https://github.com/spring-projects/spring-framework/pull/33949) -->
|
|
|
|
implementation 'io.projectreactor:reactor-core'
|
|
|
|
|
2021-05-10 17:01:34 +00:00
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-cache'
|
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
|
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-web'
|
|
|
|
implementation 'org.springframework.boot:spring-boot-starter-validation'
|
|
|
|
implementation 'javax.cache:cache-api'
|
2022-12-20 11:09:10 +00:00
|
|
|
implementation 'jakarta.xml.bind:jakarta.xml.bind-api'
|
2022-01-07 09:20:08 +00:00
|
|
|
runtimeOnly 'org.springframework.boot:spring-boot-starter-actuator'
|
2024-11-27 09:47:52 +00:00
|
|
|
runtimeOnly "org.webjars:webjars-locator-lite:${webjarsLocatorLiteVersion}"
|
2021-12-16 11:33:27 +00:00
|
|
|
runtimeOnly "org.webjars.npm:bootstrap:${webjarsBootstrapVersion}"
|
|
|
|
runtimeOnly "org.webjars.npm:font-awesome:${webjarsFontawesomeVersion}"
|
2022-12-20 11:09:10 +00:00
|
|
|
runtimeOnly 'com.github.ben-manes.caffeine:caffeine'
|
2021-05-10 17:01:34 +00:00
|
|
|
runtimeOnly 'com.h2database:h2'
|
2022-12-20 11:09:10 +00:00
|
|
|
runtimeOnly 'com.mysql:mysql-connector-j'
|
2021-12-16 11:33:27 +00:00
|
|
|
runtimeOnly 'org.postgresql:postgresql'
|
2021-05-10 17:01:34 +00:00
|
|
|
developmentOnly 'org.springframework.boot:spring-boot-devtools'
|
|
|
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
2023-07-06 05:44:53 +00:00
|
|
|
testImplementation 'org.springframework.boot:spring-boot-testcontainers'
|
|
|
|
testImplementation 'org.springframework.boot:spring-boot-docker-compose'
|
|
|
|
testImplementation 'org.testcontainers:junit-jupiter'
|
|
|
|
testImplementation 'org.testcontainers:mysql'
|
2024-09-28 06:58:17 +00:00
|
|
|
checkstyle "io.spring.javaformat:spring-javaformat-checkstyle:${springJavaformatCheckstyleVersion}"
|
|
|
|
checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}"
|
2025-01-31 17:28:10 +00:00
|
|
|
testImplementation 'junit:junit:4.13'
|
2021-05-10 17:01:34 +00:00
|
|
|
}
|
|
|
|
|
2022-09-01 20:29:06 +00:00
|
|
|
tasks.named('test') {
|
2021-05-10 17:01:34 +00:00
|
|
|
useJUnitPlatform()
|
|
|
|
}
|
2024-01-31 12:45:31 +00:00
|
|
|
|
|
|
|
checkstyle {
|
2024-02-14 01:56:03 +00:00
|
|
|
configDirectory = project.file('src/checkstyle')
|
|
|
|
configFile = file('src/checkstyle/nohttp-checkstyle.xml')
|
|
|
|
}
|
|
|
|
|
|
|
|
checkstyleNohttp {
|
|
|
|
configDirectory = project.file('src/checkstyle')
|
|
|
|
configFile = file('src/checkstyle/nohttp-checkstyle.xml')
|
2024-01-31 12:45:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
tasks.named("formatMain").configure { dependsOn("checkstyleMain") }
|
|
|
|
tasks.named("formatMain").configure { dependsOn("checkstyleNohttp") }
|
|
|
|
|
|
|
|
tasks.named("formatTest").configure { dependsOn("checkstyleTest") }
|
|
|
|
tasks.named("formatTest").configure { dependsOn("checkstyleNohttp") }
|
|
|
|
|
2025-01-31 10:21:38 +00:00
|
|
|
|
|
|
|
task openTestResults(dependsOn: ['build', 'test']) {
|
|
|
|
doLast {
|
|
|
|
def testResultsFile = file('build/reports/tests/test/index.html')
|
|
|
|
|
|
|
|
if (testResultsFile.exists()) {
|
|
|
|
println "Opening test results in the browser..."
|
|
|
|
// Open the test results file in the default browser (cross-platform)
|
|
|
|
if (System.getProperty('os.name').toLowerCase().contains('win')) {
|
|
|
|
// On Windows, use "start"
|
|
|
|
"cmd /c start ${testResultsFile}".execute()
|
|
|
|
} else if (System.getProperty('os.name').toLowerCase().contains('mac')) {
|
|
|
|
// On macOS, use "open"
|
|
|
|
"open ${testResultsFile}".execute()
|
|
|
|
} else {
|
|
|
|
// On Linux, use "xdg-open"
|
|
|
|
"xdg-open ${testResultsFile}".execute()
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
throw new GradleException("Test results file not found: ${testResultsFile}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2025-01-31 17:28:10 +00:00
|
|
|
task testProxy {
|
|
|
|
doLast {
|
|
|
|
def url = new URL('http://localhost:8081/repository/maven-central')
|
|
|
|
def connection = url.openConnection()
|
|
|
|
connection.connect()
|
|
|
|
println "Proxy connection successful to Maven Central!"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-01-31 12:45:31 +00:00
|
|
|
checkstyleAot.enabled = false
|
|
|
|
checkstyleAotTest.enabled = false
|
|
|
|
|
|
|
|
checkFormatAot.enabled = false
|
|
|
|
checkFormatAotTest.enabled = false
|
|
|
|
|
|
|
|
formatAot.enabled = false
|
|
|
|
formatAotTest.enabled = false
|