behavior-identical 확인된 4개 플레인 클래스를 com.urpsys.common 으로 단일화하고
5개 모듈이 implementation project(':common') 으로 참조하도록 전환.
추출(사본 대조 후 동작 등가 확정):
- crypto/Aes256Cipher (5벌→1): 암호로직 전 사본 동일. front 키스토어 상이(UrpSysKeyMng)
→ 생성자 파라미터화(무인자=UrpSystem 기본, front EncryptConfig 만 명시).
미사용 dead 변수(activeProfile) 제거로 CommonUtil 의존 인라인.
- exception/CustomException (5벌→1): 전 사본 로직 동일(주석·brace 스타일 차이만).
- util/ConvertUtils (api·front→1): 동일. batch 는 LinkedHashMap 분기(기능 상이) → batch 로컬 유지.
- util/DataSourceUtil (api·auth·batch·datatrans→1): 로직 동일(미사용 import 차이만).
모듈 잔류(특화·안전상 미추출, 사유 기록):
- config/EncryptConfig·PasswordEncoderConfig(@Configuration): 모듈별 @ComponentScan 이
자기 패키지 한정(api·auth·datatrans·front) → common 이관 시 빈 미등록. EncryptConfig 는
front 키스토어 특화도 겸함. 각 모듈 로컬 유지하되 common Aes256Cipher 참조로 전환.
- CommonUtil·RestApiCallUtil·HtmlEmailUtil: 사본 간 실기능 분기 大(73~293라인) → 강제 초집합 시
동작 변경 위험 → 모듈 로컬 유지.
빌드: common·auth·api·batch·datatrans·front compileJava 전부 SUCCESS(--rerun-tasks).
인코딩: 소스 UTF-8, 루트 subprojects JavaCompile encoding=UTF-8 명시(플랫폼 CP949 회귀 방지).
Bean 이름(aes256Cipher)·프로파일·포트 불변. 시크릿 미기재.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
40 lines
1.9 KiB
Groovy
40 lines
1.9 KiB
Groovy
// ITMS 통합 루트 빌드 (INTEGRATION_DESIGN.md §2, §3)
|
|
// 공통 플러그인 버전은 여기서 단일 선언(apply false) → 각 모듈은 버전 없이 적용.
|
|
// 저장소는 subprojects 공통 선언(mavenCentral + egovframe maven).
|
|
// 기능 변경 0: 의존성 목록·버전·sourceCompatibility·로깅 제외는 각 모듈 build.gradle 그대로 유지.
|
|
|
|
plugins {
|
|
id 'org.springframework.boot' version '2.6.2' apply false
|
|
id 'io.spring.dependency-management' version '1.0.11.RELEASE' apply false
|
|
id 'org.asciidoctor.convert' version '1.5.8' apply false
|
|
}
|
|
|
|
allprojects {
|
|
group = 'com.urpsys'
|
|
version = '1.0.0-SNAPSHOT'
|
|
}
|
|
|
|
subprojects {
|
|
// 소스는 UTF-8. 컴파일러 기본 인코딩이 플랫폼(CP949)일 수 있어 명시 고정(동작 등가·결정론).
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
repositories {
|
|
mavenCentral()
|
|
// egovframe maven 원격 저장소. 단, spring-modules-validation 은 아래 artifact-only 저장소에서 취득.
|
|
maven {
|
|
url "https://maven.egovframe.go.kr/maven/"
|
|
content { excludeModule("org.springmodules", "spring-modules-validation") }
|
|
}
|
|
// [front 의존성 해소] egov 저장소가 org.springmodules:spring-modules-validation:0.9 를
|
|
// 잘못된 groupId(org.egovframe.rte)로 게시 → Gradle 엄격 메타데이터 검증이 'bad group' 으로 거부.
|
|
// JAR 자체는 동일 경로(org/springmodules/.../0.9)에 정상 게시(200)이고 Maven Central 엔 부재(404)이므로,
|
|
// 해당 모듈에 한해 POM 무시(metadataSources artifact) → 원본과 동일한 JAR 을 그대로 취득(behavior-preserving).
|
|
maven {
|
|
url "https://maven.egovframe.go.kr/maven/"
|
|
metadataSources { artifact() }
|
|
content { includeModule("org.springmodules", "spring-modules-validation") }
|
|
}
|
|
}
|
|
}
|