feat: generate pods with Maven library dependency
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 28s
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 28s
This commit is contained in:
@@ -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로 교체합니다.
|
||||
|
||||
## 빌드
|
||||
|
||||
|
||||
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user