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;
|
String serviceName = "was-" + shortName;
|
||||||
write(root.resolve("settings.gradle"), """
|
write(root.resolve("settings.gradle"), """
|
||||||
rootProject.name = '%s'
|
rootProject.name = '%s'
|
||||||
|
|
||||||
includeBuild('../dat-lib-datmt') {
|
|
||||||
dependencySubstitution {
|
|
||||||
substitute module('io.shinhanlife:dat-lib-datmt') using project(':dat-was-lib')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
""".formatted(moduleName));
|
""".formatted(moduleName));
|
||||||
write(root.resolve("build.gradle"), """
|
write(root.resolve("build.gradle"), """
|
||||||
plugins {
|
plugins {
|
||||||
@@ -94,9 +88,16 @@ public final class NewPodProjectScaffolder {
|
|||||||
toolchain { languageVersion = JavaLanguageVersion.of(21) }
|
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 {
|
dependencies {
|
||||||
|
// includeBuild 없이 Maven 좌표로만 공통 MCP Server와 연동 기능을 사용합니다.
|
||||||
implementation 'io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT'
|
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;
|
Path workspace;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createsStandaloneProjectWithCompositeBuild() throws Exception {
|
void createsStandaloneProjectWithMavenLibraryDependency() throws Exception {
|
||||||
createLibraryProject();
|
createLibraryProject();
|
||||||
String result = NewPodProjectScaffolder.scaffold(workspace, "dat-was-payment", 8099,
|
String result = NewPodProjectScaffolder.scaffold(workspace, "dat-was-payment", 8099,
|
||||||
"tester", "2026.09.09");
|
"tester", "2026.09.09");
|
||||||
@@ -27,10 +27,14 @@ class NewPodProjectScaffolderTest {
|
|||||||
assertTrue(Files.exists(project.resolve("k8s/base/deployment.yaml")));
|
assertTrue(Files.exists(project.resolve("k8s/base/deployment.yaml")));
|
||||||
assertTrue(Files.exists(project.resolve("gradlew.bat")));
|
assertTrue(Files.exists(project.resolve("gradlew.bat")));
|
||||||
assertTrue(Files.exists(project.resolve("gradle/wrapper/gradle-wrapper.jar")));
|
assertTrue(Files.exists(project.resolve("gradle/wrapper/gradle-wrapper.jar")));
|
||||||
assertTrue(Files.readString(project.resolve("settings.gradle"))
|
String settings = Files.readString(project.resolve("settings.gradle"));
|
||||||
.contains("includeBuild('../dat-lib-datmt')"));
|
String build = Files.readString(project.resolve("build.gradle"));
|
||||||
assertTrue(Files.readString(project.resolve("build.gradle"))
|
assertTrue(!settings.contains("includeBuild('../dat-lib-datmt')"));
|
||||||
.contains("io.shinhanlife:dat-lib-datmt:0.0.1-SNAPSHOT"));
|
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"))
|
assertTrue(Files.readString(project.resolve("src/main/resources/application.yml"))
|
||||||
.contains("port: ${PORT:8099}"));
|
.contains("port: ${PORT:8099}"));
|
||||||
assertTrue(Files.readString(project.resolve("src/main/resources/application.yml"))
|
assertTrue(Files.readString(project.resolve("src/main/resources/application.yml"))
|
||||||
|
|||||||
Reference in New Issue
Block a user