build(itms): 버전 통일 — oauth2 2.3.8 단일화 + Java 17 source (R1, INTEGRATION_DESIGN §3-3)

- R1: auth spring-security-oauth2 2.3.4.RELEASE → 2.3.8.RELEASE (api·datatrans 와 일치, 드리프트 해소).
- sourceCompatibility 혼재(api·datatrans=11 / auth·batch·front=16) → 17 통일 + common=17.
  로컬 JDK17 로 6모듈 compileJava 전부 SUCCESS(--rerun-tasks) — 언어레벨 상향에 따른 예약어/구문 충돌 0.
- lombok(1.18.20)·mybatis-spring-boot-starter(2.2.2)·spring-security-jwt(1.0.9)는 이미 전 모듈 동일
  (드리프트 없음) → 불필요한 루트 승격 churn 회피, 현행 유지.
동작 등가: 산출 bytecode 타깃만 17로 상향, 의존성 좌표는 최신본으로 정합.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
itms-merge-dev 2026-07-17 17:45:00 +09:00
parent 5006ba6ad9
commit 1ef71899ee
6 changed files with 412 additions and 412 deletions

View File

@ -1,107 +1,107 @@
plugins plugins
{ {
id 'org.springframework.boot' id 'org.springframework.boot'
id 'io.spring.dependency-management' id 'io.spring.dependency-management'
id 'org.asciidoctor.convert' id 'org.asciidoctor.convert'
id 'java' id 'java'
id 'war' id 'war'
} }
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '11' sourceCompatibility = '17'
configurations configurations
{ {
compileOnly compileOnly
{ {
extendsFrom annotationProcessor extendsFrom annotationProcessor
} }
// spring logging , egov dataaccess // spring logging , egov dataaccess
// egov dataaccess // egov dataaccess
all { all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
} }
} }
// repositories: build.gradle subprojects (INTEGRATION_DESIGN §2) // repositories: build.gradle subprojects (INTEGRATION_DESIGN §2)
ext ext
{ {
set('snippetsDir', file("build/generated-snippets")) set('snippetsDir', file("build/generated-snippets"))
} }
dependencies dependencies
{ {
implementation project(':common') implementation project(':common')
implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-cache' implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-integration' implementation 'org.springframework.boot:spring-boot-starter-integration'
implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-quartz'
implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-security'
// implementation 'org.springframework.boot:spring-boot-starter-validation' // implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation ('org.springframework.boot:spring-boot-starter-web') implementation ('org.springframework.boot:spring-boot-starter-web')
{ {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
} }
// compileOnly 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB // compileOnly 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB
// oracle connect lib // oracle connect lib
// implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0' // implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0'
// mariadb connect lib // mariadb connect lib
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb
implementation 'org.springframework.boot:spring-boot-starter-undertow' implementation 'org.springframework.boot:spring-boot-starter-undertow'
implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'org.apache.commons:commons-lang3:3.12.0' implementation 'org.apache.commons:commons-lang3:3.12.0'
compileOnly 'org.projectlombok:lombok:1.18.20' compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20' testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20' testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
developmentOnly 'org.springframework.boot:spring-boot-devtools' developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'commons-codec:commons-codec:1.15' // implementation 'commons-codec:commons-codec:1.15' //
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log
implementation 'org.springframework.security.oauth:spring-security-oauth2:2.3.8.RELEASE' implementation 'org.springframework.security.oauth:spring-security-oauth2:2.3.8.RELEASE'
implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' // javax.xml.bind.JAXBException implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' // javax.xml.bind.JAXBException
implementation 'org.springframework.security:spring-security-jwt:1.0.9.RELEASE' implementation 'org.springframework.security:spring-security-jwt:1.0.9.RELEASE'
implementation 'com.konghq:unirest-java:3.7.02' // http implementation 'com.konghq:unirest-java:3.7.02' // http
// egov dataaccess // egov dataaccess
implementation('org.egovframe.rte:org.egovframe.rte.psl.dataaccess:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.psl.dataaccess:4.0.0')
implementation('org.egovframe.rte:org.egovframe.rte.fdl.idgnr:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.fdl.idgnr:4.0.0')
implementation('org.egovframe.rte:org.egovframe.rte.fdl.property:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.fdl.property:4.0.0')
// email // email
implementation 'org.apache.commons:commons-email:1.5' implementation 'org.apache.commons:commons-email:1.5'
implementation group: 'commons-io', name: 'commons-io', version: '2.6' implementation group: 'commons-io', name: 'commons-io', version: '2.6'
} }
test test
{ {
outputs.dir snippetsDir outputs.dir snippetsDir
useJUnitPlatform() useJUnitPlatform()
} }
asciidoctor asciidoctor
{ {
inputs.dir snippetsDir inputs.dir snippetsDir
dependsOn test dependsOn test
} }

View File

@ -1,92 +1,92 @@
plugins plugins
{ {
id 'org.springframework.boot' id 'org.springframework.boot'
id 'io.spring.dependency-management' id 'io.spring.dependency-management'
id 'org.asciidoctor.convert' id 'org.asciidoctor.convert'
id 'java' id 'java'
id 'war' id 'war'
} }
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '16' sourceCompatibility = '17'
configurations configurations
{ {
compileOnly compileOnly
{ {
extendsFrom annotationProcessor extendsFrom annotationProcessor
} }
} }
// repositories: build.gradle subprojects (INTEGRATION_DESIGN §2) // repositories: build.gradle subprojects (INTEGRATION_DESIGN §2)
ext ext
{ {
set('snippetsDir', file("build/generated-snippets")) set('snippetsDir', file("build/generated-snippets"))
} }
dependencies dependencies
{ {
implementation project(':common') implementation project(':common')
implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-cache' implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-integration' implementation 'org.springframework.boot:spring-boot-starter-integration'
implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-quartz'
implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation ('org.springframework.boot:spring-boot-starter-web') implementation ('org.springframework.boot:spring-boot-starter-web')
{ {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
} }
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB
// compileOnly 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB // compileOnly 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB
// mariadb connect lib // mariadb connect lib
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb
// oracle connect lib // oracle connect lib
// implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0' // implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0'
// http // http
implementation 'org.springframework.boot:spring-boot-starter-undertow' implementation 'org.springframework.boot:spring-boot-starter-undertow'
implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
// log // log
compileOnly 'org.projectlombok:lombok:1.18.20' compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20' testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20' testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
developmentOnly 'org.springframework.boot:spring-boot-devtools' developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'commons-codec:commons-codec:1.15' // implementation 'commons-codec:commons-codec:1.15' //
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log
implementation 'org.apache.commons:commons-lang3:3.12.0' implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'org.springframework.boot:spring-boot-starter-security' // implementation 'org.springframework.boot:spring-boot-starter-security' //
implementation 'org.springframework.security:spring-security-jwt:1.0.9.RELEASE' // implementation 'org.springframework.security:spring-security-jwt:1.0.9.RELEASE' //
implementation group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.4.RELEASE' // spring oauth 2.0 implementation group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.8.RELEASE' // spring oauth 2.0
implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3'
} }
test test
{ {
outputs.dir snippetsDir outputs.dir snippetsDir
useJUnitPlatform() useJUnitPlatform()
} }
asciidoctor asciidoctor
{ {
inputs.dir snippetsDir inputs.dir snippetsDir
dependsOn test dependsOn test
} }

View File

@ -1,92 +1,92 @@
plugins plugins
{ {
id 'org.springframework.boot' id 'org.springframework.boot'
id 'io.spring.dependency-management' id 'io.spring.dependency-management'
id 'org.asciidoctor.convert' id 'org.asciidoctor.convert'
id 'java' id 'java'
id 'war' id 'war'
} }
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '16' sourceCompatibility = '17'
configurations configurations
{ {
compileOnly compileOnly
{ {
extendsFrom annotationProcessor extendsFrom annotationProcessor
} }
// spring logging , egov dataaccess // spring logging , egov dataaccess
// egov dataaccess // egov dataaccess
all { all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
} }
} }
// repositories: build.gradle subprojects (INTEGRATION_DESIGN §2) // repositories: build.gradle subprojects (INTEGRATION_DESIGN §2)
ext ext
{ {
set('snippetsDir', file("build/generated-snippets")) set('snippetsDir', file("build/generated-snippets"))
} }
dependencies dependencies
{ {
implementation project(':common') implementation project(':common')
implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-quartz'
implementation ('org.springframework.boot:spring-boot-starter-web') implementation ('org.springframework.boot:spring-boot-starter-web')
{ {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
} }
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB
implementation 'org.springframework.boot:spring-boot-starter-undertow' implementation 'org.springframework.boot:spring-boot-starter-undertow'
implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
// 2025.06.04 DB // 2025.06.04 DB
implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0' implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0'
compileOnly 'org.projectlombok:lombok:1.18.20' compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20' testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20' testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
implementation 'commons-codec:commons-codec:1.15' // implementation 'commons-codec:commons-codec:1.15' //
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log
// //
developmentOnly 'org.springframework.boot:spring-boot-devtools' // developmentOnly 'org.springframework.boot:spring-boot-devtools' //
implementation 'org.apache.commons:commons-lang3:3.12.0' // implementation 'org.apache.commons:commons-lang3:3.12.0' //
// 2025.04.02 email // 2025.04.02 email
implementation 'org.apache.commons:commons-email:1.5' implementation 'org.apache.commons:commons-email:1.5'
implementation group: 'commons-io', name: 'commons-io', version: '2.6' implementation group: 'commons-io', name: 'commons-io', version: '2.6'
// api // api
implementation 'com.konghq:unirest-java:3.7.02' implementation 'com.konghq:unirest-java:3.7.02'
// egov dataaccess // egov dataaccess
implementation('org.egovframe.rte:org.egovframe.rte.psl.dataaccess:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.psl.dataaccess:4.0.0')
implementation('org.egovframe.rte:org.egovframe.rte.fdl.idgnr:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.fdl.idgnr:4.0.0')
} }
test test
{ {
outputs.dir snippetsDir outputs.dir snippetsDir
useJUnitPlatform() useJUnitPlatform()
} }
asciidoctor asciidoctor
{ {
inputs.dir snippetsDir inputs.dir snippetsDir
dependsOn test dependsOn test
} }

View File

@ -8,7 +8,7 @@ plugins {
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '11' // (11/16) . JDK17 . sourceCompatibility = '17' // toolchain 17 (INTEGRATION_DESIGN §3-3)
configurations { configurations {
compileOnly { compileOnly {

View File

@ -9,7 +9,7 @@ plugins
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '11' sourceCompatibility = '17'
configurations configurations
{ {

View File

@ -1,127 +1,127 @@
plugins plugins
{ {
id 'org.springframework.boot' id 'org.springframework.boot'
id 'io.spring.dependency-management' id 'io.spring.dependency-management'
id 'org.asciidoctor.convert' id 'org.asciidoctor.convert'
id 'java' id 'java'
id 'war' id 'war'
} }
group = 'com.urpsys' group = 'com.urpsys'
version = '1.0.0-SNAPSHOT' version = '1.0.0-SNAPSHOT'
sourceCompatibility = '16' sourceCompatibility = '17'
configurations configurations
{ {
compileOnly compileOnly
{ {
extendsFrom annotationProcessor extendsFrom annotationProcessor
} }
// ( lib ) // ( lib )
all { all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
} }
} }
// repositories: build.gradle subprojects (INTEGRATION_DESIGN §2) // repositories: build.gradle subprojects (INTEGRATION_DESIGN §2)
ext ext
{ {
set('snippetsDir', file("build/generated-snippets")) set('snippetsDir', file("build/generated-snippets"))
} }
dependencies dependencies
{ {
implementation project(':common') implementation project(':common')
implementation 'org.springframework.boot:spring-boot-starter-batch' implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-cache' implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'org.springframework.boot:spring-boot-starter-integration' implementation 'org.springframework.boot:spring-boot-starter-integration'
implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-quartz'
implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation ('org.springframework.boot:spring-boot-starter-web') implementation ('org.springframework.boot:spring-boot-starter-web')
{ {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
} }
implementation 'org.apache.tiles:tiles-jsp:3.0.7' // tiles implementation 'org.apache.tiles:tiles-jsp:3.0.7' // tiles
implementation 'org.springframework.boot:spring-boot-starter-undertow' implementation 'org.springframework.boot:spring-boot-starter-undertow'
implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl' // JSP implementation 'javax.servlet:jstl' // JSP
compileOnly 'org.projectlombok:lombok:1.18.20' compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20' testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20' testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
developmentOnly 'org.springframework.boot:spring-boot-devtools' developmentOnly 'org.springframework.boot:spring-boot-devtools'
implementation 'commons-codec:commons-codec:1.15' // implementation 'commons-codec:commons-codec:1.15' //
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log
implementation 'com.konghq:unirest-java:3.7.02' // http implementation 'com.konghq:unirest-java:3.7.02' // http
// //
// implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1' // implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
// //
implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springmodules:spring-modules-validation:0.9' implementation 'org.springmodules:spring-modules-validation:0.9'
implementation 'org.antlr:antlr:3.5' // validator implementation 'org.antlr:antlr:3.5' // validator
// egov mvc lib // egov mvc lib
implementation('org.egovframe.rte:org.egovframe.rte.ptl.mvc:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.ptl.mvc:4.0.0')
{ {
exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging' exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
exclude group: 'org.egovframe.rte', module: 'spring-modules-validation' exclude group: 'org.egovframe.rte', module: 'spring-modules-validation'
} }
implementation('org.egovframe.rte:org.egovframe.rte.fdl.property:4.0.0') implementation('org.egovframe.rte:org.egovframe.rte.fdl.property:4.0.0')
// //
implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-security'
// email // email
implementation 'org.apache.commons:commons-email:1.5' implementation 'org.apache.commons:commons-email:1.5'
implementation group: 'commons-io', name: 'commons-io', version: '2.6' implementation group: 'commons-io', name: 'commons-io', version: '2.6'
// apache poi lib // apache poi lib
// implementation 'org.apache.poi:poi-ooxml:5.3.0' // implementation 'org.apache.poi:poi-ooxml:5.3.0'
// apache poi lib // apache poi lib
implementation 'org.apache.poi:poi:4.1.2' implementation 'org.apache.poi:poi:4.1.2'
implementation 'org.apache.poi:poi-ooxml:4.1.2' implementation 'org.apache.poi:poi-ooxml:4.1.2'
implementation 'org.apache.poi:poi-scratchpad:4.1.2' implementation 'org.apache.poi:poi-scratchpad:4.1.2'
implementation 'org.apache.poi:poi-examples:4.1.2' implementation 'org.apache.poi:poi-examples:4.1.2'
// 2026.04.02 OTP // 2026.04.02 OTP
implementation 'com.warrenstrange:googleauth:1.5.0' implementation 'com.warrenstrange:googleauth:1.5.0'
// 2026.04.02 OTP // 2026.04.02 OTP
implementation 'com.google.zxing:core:3.5.1' implementation 'com.google.zxing:core:3.5.1'
implementation 'com.google.zxing:javase:3.5.1' implementation 'com.google.zxing:javase:3.5.1'
implementation 'de.taimos:totp:1.0' implementation 'de.taimos:totp:1.0'
} }
test test
{ {
outputs.dir snippetsDir outputs.dir snippetsDir
useJUnitPlatform() useJUnitPlatform()
} }
asciidoctor asciidoctor
{ {
inputs.dir snippetsDir inputs.dir snippetsDir
dependsOn test dependsOn test
} }