1. 개요
Spring Boot 는 Spring Boot 애플리케이션을 더 쉽게 생성 할 수 있도록 상위 POM을 제공합니다.
그러나 이미 상속 할 부모가있는 경우 부모 POM을 사용하는 것이 항상 바람직한 것은 아닙니다.
이 빠른 사용방법(예제)에서는 부모 스타터없이 Boot를 계속 사용할 수있는 방법을 살펴 보겠습니다.
2. 부모 POM없는 스프링 부트
상위 pom.xml 은 의존성 및 플러그인 관리를 처리합니다. 이러한 이유로 상속은 응용 프로그램에서 중요한 지원을 제공하므로 일반적으로 부팅 응용 프로그램을 만들 때 선호되는 작업 과정입니다 . 이전 기사 에서 상위 스타터를 기반으로 애플리케이션을 빌드하는 방법에 대한 자세한 내용을 찾을 수 있습니다 .
하지만 실제로 는 다른 부모를 사용하기 위해 디자인 규칙이나 기타 기본 설정에 제약을받을 수 있습니다.
다행스럽게도 Spring Boot 는 상위 스타터에서 상속하는 것에 대한 대안을 제공하므로 여전히 장점 중 일부를 제공 할 수 있습니다.
부모 POM을 사용하지 않는 경우에도 scope = import를 사용 하여 spring-boot-dependencies 아티팩트를 추가하여 의존성 관리의 이점을 얻을 수 있습니다 .
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
다음으로, Spring 의존성을 추가하고 Spring Boot 기능 을 사용하기 시작할 수 있습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
반면에 부모 POM이 없으면 더 이상 플러그인 관리의 혜택을 누릴 수 없습니다. 즉, spring-boot-maven-plugin을 명시 적으로 추가해야합니다 .
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3. 의존성 버전 재정의
특정 의존성에 대해 Boot에서 관리하는 것과 다른 버전을 사용하려면 spring-boot-dependencies 가 선언 되기 전에 dependencyManagement 섹션 에서 선언해야합니다 .
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
// ...
</dependencyManagement>
반대로, dependencyManagement 태그 외부에서 의존성 의 버전을 선언하는 것만으로 는 더 이상 작동하지 않습니다.
4. 결론
이 빠른 사용방법(예제) 에서 부모 pom.xml 없이 Spring Boot 를 사용하는 방법을 살펴 보았습니다 .
예제의 소스 코드는 GitHub 에서 찾을 수 있습니다 .