1+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
2+
3+ val libs = the< org.gradle.accessors.dm.LibrariesForLibs > ()
4+
5+ plugins {
6+ `java- library`
7+ id(" buildlogic.repositories-conventions" )
8+ id(" buildlogic.jacoco-conventions" )
9+ kotlin(" jvm" )
10+ kotlin(" plugin.spring" )
11+ kotlin(" kapt" )
12+ }
13+
14+ group = libs.versions.group.get()
15+ version = libs.versions.project.get()
16+
17+ configurations.all {
18+ resolutionStrategy {
19+ dependencySubstitution {
20+ substitute(module(" com.querydsl:querydsl-jpa" ))
21+ .using(module(" com.querydsl:querydsl-jpa:5.1.0" ))
22+ .withClassifier(" jakarta" )
23+ substitute(module(" com.querydsl:querydsl-apt" ))
24+ .using(module(" com.querydsl:querydsl-apt:5.1.0" ))
25+ .withClassifier(" jakarta" )
26+ }
27+ }
28+ }
29+
30+ java {
31+ sourceCompatibility = JavaVersion .toVersion(libs.versions.java.get().toInt())
32+ targetCompatibility = JavaVersion .toVersion(libs.versions.java.get().toInt())
33+ toolchain {
34+ languageVersion = JavaLanguageVersion .of(libs.versions.java.get().toInt())
35+ }
36+ }
37+
38+ dependencies {
39+ implementation(libs.org.jetbrains.kotlin.kotlin.stdlib)
40+ implementation(libs.org.jetbrains.kotlin.kotlin.reflect)
41+ implementation(libs.org.springframework.boot.spring.boot.autoconfigure)
42+ kapt(libs.org.springframework.boot.spring.boot.configuration.processor)
43+ annotationProcessor(libs.org.springframework.boot.spring.boot.configuration.processor)
44+ }
45+
46+ kotlin {
47+ compilerOptions {
48+ jvmTarget = JvmTarget .fromTarget(libs.versions.java.get())
49+ freeCompilerArgs = listOf (
50+ " -Xjsr305=strict" , " -Xjvm-default=all"
51+ )
52+ }
53+ jvmToolchain(libs.versions.java.get().toInt())
54+ }
55+
56+ // 确保 kotlin_module 文件被正确生成
57+ tasks.withType< org.jetbrains.kotlin.gradle.tasks.KotlinCompile > {
58+ compilerOptions {
59+ // 确保模块信息被正确生成
60+ javaParameters.set(true )
61+ }
62+ }
63+
64+ tasks.withType<Jar > {
65+ duplicatesStrategy = DuplicatesStrategy .EXCLUDE
66+
67+ // 配置 jar 任务包含 LICENSE 文件
68+ from(rootProject.file(" LICENSE" )) {
69+ into(" META-INF" )
70+ }
71+ }
72+
73+ testing {
74+ suites {
75+ val test by getting(JvmTestSuite ::class ) {
76+ useJUnitJupiter(libs.versions.org.junit.jupiter.get())
77+ }
78+ }
79+ }
80+
81+ afterEvaluate {
82+ tasks.withType<Test >().configureEach {
83+ dependsOn(configurations.testRuntimeClasspath)
84+
85+ // Configure test output for detailed logging
86+ testLogging {
87+ showStandardStreams = true
88+ exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat .FULL
89+ events(" passed" , " skipped" , " failed" , " started" )
90+ showExceptions = true
91+ showCauses = true
92+ showStackTraces = true
93+ }
94+ }
95+ }
96+
97+ tasks.withType<JavaCompile >().configureEach {
98+ options.compilerArgs.add(" -parameters" )
99+ }
0 commit comments