feat: generate pods with Maven library dependency
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 28s

This commit is contained in:
jade
2026-09-10 11:22:27 +09:00
parent 17d9f3cb77
commit 6c318ebeae
2 changed files with 20 additions and 13 deletions

View File

@@ -73,12 +73,6 @@ public final class NewPodProjectScaffolder {
String serviceName = "was-" + shortName;
write(root.resolve("settings.gradle"), """
rootProject.name = '%s'
includeBuild('../dat-lib-datmt') {
dependencySubstitution {
substitute module('io.shinhanlife:dat-lib-datmt') using project(':dat-was-lib')
}
}
""".formatted(moduleName));
write(root.resolve("build.gradle"), """
plugins {
@@ -94,9 +88,16 @@ public final class NewPodProjectScaffolder {
toolchain { languageVersion = JavaLanguageVersion.of(21) }
}
repositories { mavenCentral() }
repositories {
// dat-lib-datmt에서 :dat-was-lib:publishToMavenLocal 실행 후
// Maven Local의 io.shinhanlife:dat-lib-datmt JAR/POM을 사용합니다.
// 신한라이프 이관 시 mavenLocal() 대신 사내 Nexus repository를 추가합니다.
mavenLocal()
mavenCentral()
}
dependencies {
// includeBuild 없이 Maven 좌표로만 공통 MCP Server와 연동 기능을 사용합니다.
implementation 'io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT'
}
@@ -219,7 +220,9 @@ public final class NewPodProjectScaffolder {
## 공통 라이브러리
상위 workspace의 `dat-lib-datmt`를 Gradle composite build로 참조합니다.
`io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT` Maven 좌표로 공통 라이브러리를 참조합니다.
로컬 개발에서는 먼저 `dat-lib-datmt`에서 `:dat-was-lib:publishToMavenLocal`을 실행한 뒤 이 프로젝트를 빌드합니다.
신한라이프 이관 후에는 같은 Maven 좌표를 사내 Nexus에서 내려받도록 `mavenLocal()`을 Nexus repository로 교체합니다.
## 빌드

View File

@@ -14,7 +14,7 @@ class NewPodProjectScaffolderTest {
Path workspace;
@Test
void createsStandaloneProjectWithCompositeBuild() throws Exception {
void createsStandaloneProjectWithMavenLibraryDependency() throws Exception {
createLibraryProject();
String result = NewPodProjectScaffolder.scaffold(workspace, "dat-was-payment", 8099,
"tester", "2026.09.09");
@@ -27,10 +27,14 @@ class NewPodProjectScaffolderTest {
assertTrue(Files.exists(project.resolve("k8s/base/deployment.yaml")));
assertTrue(Files.exists(project.resolve("gradlew.bat")));
assertTrue(Files.exists(project.resolve("gradle/wrapper/gradle-wrapper.jar")));
assertTrue(Files.readString(project.resolve("settings.gradle"))
.contains("includeBuild('../dat-lib-datmt')"));
assertTrue(Files.readString(project.resolve("build.gradle"))
.contains("io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT"));
String settings = Files.readString(project.resolve("settings.gradle"));
String build = Files.readString(project.resolve("build.gradle"));
assertTrue(!settings.contains("includeBuild('../dat-lib-datmt')"));
assertTrue(build.contains("mavenLocal()"));
assertTrue(build.contains("io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT"));
assertTrue(build.contains("publishToMavenLocal"));
assertTrue(Files.readString(project.resolve("README.md")).contains("publishToMavenLocal"));
assertTrue(!Files.readString(project.resolve("README.md")).contains("composite build"));
assertTrue(Files.readString(project.resolve("src/main/resources/application.yml"))
.contains("port: ${PORT:8099}"));
assertTrue(Files.readString(project.resolve("src/main/resources/application.yml"))