1.7. Camel Spring Boot에 패치 적용
새로운 patch-maven-plugin
메커니즘을 사용하면 Red Hat Camel Spring Boot 애플리케이션에 패치를 적용할 수 있습니다. 이 메커니즘을 사용하면 다른 Red Hat 애플리케이션 BOMS에서 제공하는 개별 버전(예: camel-spring-boot-bom
)을 변경할 수 있습니다.
patch-maven-plugin 은 Camel on Spring Boot BOM에 나열된 종속성 버전을 애플리케이션에 적용하려는 패치 메타데이터에 지정된 버전으로 업데이트하는 것입니다.
patch-maven-plugin은 다음 작업을 수행합니다.
- 현재 Red Hat 애플리케이션 BOM과 관련된 패치 메타데이터를 검색합니다.
- 버전 변경 사항을 BOM에서 가져온 <dependencyManagement>에 적용합니다.
patch-maven-plugin
이 메타데이터를 가져온 후 플러그인이 선언된 프로젝트의 모든 관리 및 직접 종속 항목을 반복하고 CVE/patch 메타데이터를 사용하여 종속성 버전(동일한 경우)을 대체합니다. 버전이 교체되면 Maven 빌드가 계속되고 표준 Maven 프로젝트 단계를 통해 진행됩니다.
절차
다음 절차에서는 패치를 애플리케이션에 적용하는 방법을 설명합니다.
프로젝트의
pom.xml
파일에patch-maven-plugin
을 추가합니다.patch-maven-plugin
버전은 Spring Boot BOM의 Camel 버전과 동일해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn clean deploy
,mvn validate
,mvn dependency:tree
명령을 실행하는 경우 플러그인은 프로젝트 모듈을 통해 모듈이 Red Hat Camel Spring Boot BOM을 사용하는지 확인합니다. 다음은 지원되는 BOM입니다.-
com.redhat.camel.springboot.platform:camel-spring-boot-bom
: Camel Spring Boot BOM
-
플러그인이 위의 BOM을 찾지 못하면 플러그인은 다음 메시지를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 올바른 BOM을 사용하면 패치 메타데이터를 찾을 수 있지만 패치가 없습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch-maven-plugin
은 이 Maven 메타데이터를 가져오려고 합니다.Camel Spring Boot BOM을 사용하는 프로젝트의 경우
com.redhat.camel.springboot.platform:redhat-camel-spring-boot-patch-metadata/maven-metadata.xml
이 해결되었습니다. 이 XML 데이터는com.redhat.camel.springboot.platform:redhat-camel-spring-boot-patch-metadata:RELEASE
조정을 사용한 아티팩트의 메타데이터입니다.Maven에서 생성한 메타데이터의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
patch-maven-plugin
은 메타데이터를 구문 분석하여 현재 프로젝트에 적용되는 버전을 선택합니다. 이 작업은 특정 버전의 Spring Boot BOM에서 Camel을 사용하는 Maven 프로젝트에만 적용할 수 있습니다. 버전 범위 이상과 일치하는 메타데이터만 적용되며 최신 버전의 메타데이터만 가져옵니다. patch-maven-plugin
은 이전 단계에서 발견된groupId
,artifactId
및버전으로
식별된 패치 메타데이터를 다운로드하는 원격 Maven 리포지토리 목록을 수집합니다. 이러한 Maven 리포지토리는 활성 프로필의 프로젝트의 <repositories
> 요소와settings.xml
파일의 리포지토리에도 나열됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메타데이터가 원격 리포지토리, 로컬 리포지토리 또는 ZIP 파일에서 제공되는지 여부에 관계없이
patch-maven-plugin
으로 분석됩니다. 가져온 메타데이터에는 CVE 목록이 포함되어 있으며 각 CVE에 대해 지정된 CVE에 대한 수정 사항이 포함된 버전과 함께 영향을 받는 Maven 아티팩트 목록이 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마지막으로 현재 프로젝트의 모든 관리 종속 항목을 반복할 때 패치 메타데이터에 지정된 수정 사항 목록이 참조됩니다. 일치하는 이러한 종속 항목(및 관리되는 종속 항목)은 수정된 버전으로 변경됩니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
패치 건너뛰기
프로젝트에 특정 패치를 적용하지 않으려면 patch-maven-plugin
은 건너뛰기
옵션을 제공합니다. 프로젝트의 pom.xml
파일에 patch-maven-plugin
을 이미 추가했으며 버전을 변경하지 않으려면 다음 방법 중 하나를 사용하여 패치를 건너뛸 수 있습니다.
-
다음과 같이 프로젝트의
pom.xml
파일에 skip 옵션을 추가합니다.
-
또는 다음과 같이
mvn
명령을 실행할 때-DskipPatch
옵션을 사용합니다.
위 출력에 표시된 대로 patch-maven-plugin
이 호출되지 않아 패치가 애플리케이션에 적용되지 않았습니다.