7.2. Red Hat Fuse 애플리케이션에 패치 적용
patch-maven-plugin 의 목적은 Red Hat Fuse BOM에 나열된 종속 항목의 버전을 애플리케이션에 적용하려는 패치의 패치 메타데이터에 지정된 버전으로 업데이트하는 것입니다.
절차
다음 절차에서는 애플리케이션에 패치를 적용하는 방법을 설명합니다.
프로젝트의
pom.xml
파일에patch-maven-plugin
을 추가합니다.patch-maven-plugin
의 버전은 Fuse BOM의 버전과 동일해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow mvn clean deploy
또는mvn validate
또는mvn dependency:tree
명령 중 하나를 실행하면, 플러그인은 프로젝트 모듈을 통해 Red Hat Fuse BOMs 중 하나를 사용하는지 확인합니다. 지원되는 BOM은 다음 두 가지로 간주됩니다.-
org.jboss.redhat-fuse:fuse-karaf-bom
: Fuse Karaf BOM -
org.jboss.redhat-fuse:fuse-springboot-bom
: Fuse Spring Boot BOM
-
위의 BOM을 찾을 수 없는 경우 플러그인은 다음 메시지를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fuse BOM이 둘 다 발견되면 다음 경고와 함께
patch-maven-plugin
이 중지됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch-maven-plugin
은 다음 Maven 메타데이터 값 중 하나를 가져옵니다.-
Fuse Karaf BOM을 사용하는 프로젝트의 경우
org.jboss.redhat-fuse/fuse-karaf-patch-metadata/maven-metadata.xml
이 해결되었습니다.org.jboss.redhat-fuse:fuse-karaf-patch-metadata:RELEASE
좌표를 사용하여 아티팩트의 메타데이터입니다. Fuse Spring Boot BOM 프로젝트를 사용하는 프로젝트의 경우
org.jboss.redhat-fuse/fuse-springboot-patch-metadata/maven-metadata.xml
이 확인됩니다.org.jboss.redhat-fuse:fuse-springboot-patch-metadata:RELEASE
좌표를 사용하여 아티팩트의 메타데이터입니다.Maven에서 생성한 메타데이터의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Fuse Karaf BOM을 사용하는 프로젝트의 경우
-
patch-maven-plugin
은 현재 프로젝트에 적용할 수 있는 버전을 선택하기 위해 메타데이터를 구문 분석합니다. 이는 버전이 7.8.xxx 인 Fuse BOM을 사용하는 Maven 프로젝트에서만 가능합니다. 버전 범위 7.8, 7.9 이상과 일치하는 메타데이터만 적용할 수 있으며 최신 버전의 메타데이터만 가져옵니다. patch-maven-plugin
은 이전 단계에서 발견된groupId
,artifactId
및version
으로 식별된 패치 메타데이터를 다운로드할 때 사용할 원격 Maven 리포지토리 목록을 수집합니다. 이러한 Maven 리포지토리는 활성 프로필의 프로젝트의 <repositories
> 요소와settings.xml
파일의 리포지토리에도 나열됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로 오프라인 리포지토리를 사용하려는 경우
-Dpatch
옵션을 사용하여jboss-fuse/redhat-fuse
프로젝트의fuse-karaf/fuse-patch-repository
또는fuse-springboot/fuse-springboot-patch-repository
모듈에서 생성하는 ZIP 파일을 지정할 수 있습니다. 이러한 ZIP 파일은 Maven 리포지토리 구조와 동일한 내부 구조를 갖습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메타데이터가 원격 리포지토리, 로컬 리포지토리 또는 ZIP 파일에서 제공되는지 여부에 따라
patch-maven-plugin
에 의해 분석됩니다. 가져온 메타데이터에는 CVE 목록이 포함되어 있으며 각 CVE에 대해 수정 사항이 포함된 버전과 함께 영향을 받는 Maven 아티팩트 목록(글러러 패턴 및 버전 범위에 의해 지정됨)이 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마지막으로 현재 프로젝트의 모든 관리 종속 항목을 반복할 때 패치 메타데이터에 지정된 수정 사항 목록을 참조합니다. 일치하는 이러한 종속 항목(및 관리되는 종속 항목)은 수정된 버전으로 변경됩니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
패치 건너뛰기
프로젝트에 특정 패치를 적용하지 않으려면 patch-maven-plugin
에서 skip
옵션을 제공합니다. 이미 patch-maven-plugin
을 프로젝트의 pom.xml
파일에 추가했으며 버전을 변경할 필요가 없다고 가정하면 다음 방법 중 하나를 사용하여 패치를 건너뛸 수 있습니다.
-
다음과 같이 프로젝트의
pom.xml
파일에 skip 옵션을 추가합니다.
-
또는 다음과 같이
mvn
명령을 실행할 때-DskipPatch
옵션을 사용합니다.
위 출력에 표시된 것처럼 patch-maven-plugin
이 호출되지 않아 패치가 애플리케이션에 적용되지 않습니다.