Initializr에서 생성한 프로젝트를 내려받아 선호하는 IDE의 Maven 프로젝트로 임포트했다면 컨피그 서버 프로젝트의 루트 디렉터리에 다음과 같은 pom.xml 파일을 볼 수 있을 것이다.
코드 5-1 스프링 컨피그 서버의 메이븐 pom.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version> ➊
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.optimagrowth</groupId>
<artifactId>configserver</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Configuration Server</name>
<description>Configuration Server</description>
<properties>
<java.version>11</java.version>
<docker.image.prefix>ostock</docker.image.prefix>
<spring-cloud.version>Hoxton.SR1</spring-cloud.version> ➋
</properties>
<dependencies> ➌
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement> ➍
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
➊ 스프링 부트 버전
➋ 사용할 스프링 클라우드 버전
➌ ConfigServer를 실행하기 위한 스프링 클라우드 프로젝트와 기타 의존성
➍ 스프링 클라우드 BOM(Bill Of Materials) 정의
Note ≣
pom.xml 파일에 도커 의존성과 구성 정보가 포함되어야 하지만 ‘공간 절약하기’에 해당하는 코드 예제에는 추가하지 않았다. 구성 서버에 대한 도커 구성 정보를 살펴보려면 5장 예제 폴더(https://github.com/klimtever/manning-smia2/tree/master/chapter5)를 참고하기 바란다.