3.2. Spring Boot BOM 사용
첫 번째 Spring Boot 프로젝트를 생성하고 빌드한 후 곧 더 많은 구성 요소를 추가하려고 합니다. 그러나 프로젝트에 추가할 Maven 종속 항목의 버전을 어떻게 알 수 있습니까? 가장 간단한(및 권장) 접근 방식은 관련 BOM(Bod of material) 파일을 사용하는 것입니다. 이 파일은 모든 버전 종속 항목을 자동으로 정의하는 것입니다.
3.2.1. BOM 파일 for Spring Boot
BOM(Maven bill of materials) 파일의 목적은 잘 작동하는 Maven 종속성 버전 집합을 제공하여 모든 Maven 아티팩트에 대해 버전을 개별적으로 정의할 필요가 없도록 하는 것입니다.
사용 중인 Spring Boot 버전에 따라 올바른 Fuse BOM을 사용하고 있는지 확인합니다(부팅 1 또는 Spring Boot 2).
Fuse BOM for Spring Boot는 다음과 같은 이점을 제공합니다.
- POM에 종속성을 추가할 때 버전을 지정할 필요가 없도록 Maven 종속 항목에 대한 버전을 정의합니다.
- 특정 버전의 Fuse에서 완전히 테스트 및 지원되는 선별된 종속성 세트를 정의합니다.
- Fuse 업그레이드 간소화.
Fuse BOM에서 정의한 종속성 세트만 Red Hat에서 지원합니다.
3.2.2. BOM 파일 통합
BOM 파일을 Maven 프로젝트에 통합하려면 아래 Spring Boot 2 및 Spring Boot 1의 예와 같이 프로젝트의 pom.xml
파일(또는 상위 POM 파일에서)에 dependencyManagement
요소를 지정합니다.
Spring Boot 2 BOM
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project ...> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- configure the versions you want to use here --> <fuse.version>7.11.1.fuse-sb2-7_11_1-00022-redhat-00002</fuse.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>fuse-springboot-bom</artifactId> <version>${fuse.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ... </project>
Spring Boot 1 BOM
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project ...> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- configure the versions you want to use here --> <fuse.version>7.11.1.fuse-sb2-7_11_1-00022-redhat-00002</fuse.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>fuse-springboot-bom</artifactId> <version>${fuse.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ... </project>
종속성 관리 메커니즘을 사용하여 BOM을 지정한 후 아티팩트 버전을 지정하지 않고 Maven 종속성을 POM에 추가할 수 있습니다. 예를 들어 camel-hystrix
구성 요소에 대한 종속성을 추가하려면 POM의 종속성
요소에 다음 XML 조각을 추가합니다.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-hystrix-starter</artifactId> </dependency>
Camel 아티팩트 ID를 -starter
suffix Cryostat- Cryostat로 지정하는 방법에 유의하십시오. 즉 Camel Hystrix 구성 요소를
로 지정합니다. Camel 시작 구성 요소는 Spring Boot 환경에 최적화된 방식으로 패키지됩니다.
camel-hystrix
-starter
3.2.3. Spring Boot Maven 플러그인
Spring Boot Maven 플러그인은 Spring Boot에서 제공하며 Spring Boot 프로젝트를 빌드하고 실행하기 위한 개발자 유틸리티입니다.
-
프로젝트 디렉터리에
mvn 패키지를 입력하여 Spring Boot 애플리케이션에 대한 실행 가능한 Jar 패키지를
빌드 합니다. 빌드 출력은 Maven 프로젝트의target/
하위 디렉터리에 배치됩니다. -
편의를 위해
mvn spring-boot:start
명령을 사용하여 새로 빌드된 애플리케이션을 실행할 수 있습니다.
Spring Boot Maven 플러그인을 프로젝트 POM 파일에 통합하려면 다음 예와 같이 pom.xml
파일의 project/build/plugins
섹션에 플러그인 구성을 추가합니다.
예제
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project ...> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- configure the versions you want to use here --> <fuse.version>7.11.1.fuse-sb2-7_11_1-00022-redhat-00002</fuse.version> </properties> ... <build> <plugins> <plugin> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${fuse.version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ... </project>