AEM 프로덕션 파이프라인에서 Java 런타임 버전 불일치 해결
이 문서에서는 Java 런타임 버전으로 인해 Adobe Experience Manager(AEM as a Cloud Service) 빌드 불일치 및 단위 테스트 단계가 실패할 경우 이에 대한 솔루션을 제공합니다. 이 솔루션에는 Maven 번들 플러그인을 다운그레이드하고 일관된 환경 구성이 포함됩니다.
설명
환경
Adobe Experience Manager(AEM as a Cloud Service) - 사이트
문제/증상
주 분기에 대한 프로덕션 파이프라인의 빌드 및 단위 테스트 단계 동안 오류가 발생합니다. 오류 메시지는 Maven 빌드 중에 사용된 Java 런타임 버전이 일치하지 않아 API가 비호환됨을 나타냅니다. maven-bundle-plugin
버전 6.0.0에는 Java 17이 필요하지만 AEM Cloud는 Java 11만 지원하므로 호환되지 않습니다.
해결 방법
-
Maven 번들 플러그인을 다운그레이드합니다.
<build>
,<pluginManagement>
및<plugins>
섹션에서pom.xml
파일을 수정하고 호환되는maven-bundle-plugin
버전을 지정했는지 확인하십시오. 권장 버전은 Java 8 및 11을 지원하므로 5.1.9 이하입니다.<build> <pluginManagement> <plugins> ... <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>5.1.2</version> <inherited>true</inherited> </plugin> ... </plugins> </pluginManagement> </build>
-
환경 간에 불일치가 지속되면 Adobe의 cloud manager 설명서에서 제공하는 적절한 API를 사용하여 캐시된 아티팩트를 지우는 것이 좋습니다. 단계는 Adobe 개발자 설명서에서 개요 - Cloud Manager API를 참조하십시오.
-
지원되지 않는 플러그 인 버전에 기본적으로 포함될 수 있는 항목이 있는지 코드 베이스 구성(
pom.xml
)을 확인하십시오. 단계는 AEM 프로젝트 구조 사용 안내서의 저장소 구조 패키지를 참조하십시오. -
개발 및 프로덕션 파이프라인이 모두 종속성 및 플러그인에 대해 일관된 구성을 사용하는지 확인합니다.
Java 런타임 요구 사항에 대한 호환성 문제를 해결한 경우 이제 AEM as a Cloud Service 설정 내의 모든 환경에서 빌드 및 단위 테스트를 성공적으로 실행할 수 있습니다.