Cloud Manager에서 ch.qos.logback 및 제거된 API에 대한 더 이상 사용되지 않는 라이브러리 사용 경고 해결

Cloud Manager은 빌드, 코드 품질 또는 배포 단계 동안 ch.qos.logback 또는 제거된 다른 API에 대해 더 이상 사용되지 않는 라이브러리 사용을 보고합니다. 이러한 경고는 오래된 ACS AEM Commons 버전, 잘못된 Maven 분류자 또는 제거된 API를 직접 참조하는 고객 코드에서 발생합니다. 경우에 따라 Logback 참조는 Adobe 관리 플랫폼 번들에서 비롯되며 고객을 변경할 필요가 없습니다. 정확한 소스(ACS Commons 버전, 분류자 불일치, 고객 코드 또는 Adobe 런타임)를 식별하여 올바른 수정 사항을 결정합니다.

설명 description

문제: Cloud Manager은 빌드 또는 코드 품질 검사 중에 더 이상 사용되지 않는 ch.qos.logback 또는 제거된 API 사용을 플래그로 표시합니다

설명

Cloud Manager Action Center 알림 또는 파이프라인 실패는 ch.qos.logback 또는 제거된 다른 API의 사용이 더 이상 사용되지 않음을 나타냅니다. 이러한 경고는 빌드 단계에서 region-deprecated-api 또는 configuration-api 검사 아래에 나타납니다. 근본 원인은 다양합니다. 오래된 ACS AEM Commons 버전이 로그백을 전환적으로 가져오거나, 잘못된 Maven 분류자가 사용되거나, 고객 코드 참조가 제거된 API를 참조하거나, Adobe 관리 내부 번들이 빌드에 영향을 주지 않고 런타임 시 로그백을 등록합니다.

환경:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • Cloud Manager(빌드, 코드 품질 및 배포 파이프라인)
  • ACS AEM 커먼즈

문제/증상:

  • Cloud Manager 빌드 로그 표시: Usage of deprecated package found : ch.qos.logback.* : This internal logback API is not supported by AEM as a Cloud Service
  • 고객 코드에서 Logback을 사용하지 않는 경우에도 런타임 로그에 ServiceEvent REGISTERED [ ch.qos.logback.core.filter.Filter]과(와) 같은 항목이 있습니다.
  • RequestResponseFactory과(와) 같이 더 이상 사용되지 않는 API와 관련된 오류로 인해 빌드 컴파일에 실패합니다.
  • 코드 분석기가 Service.ranking is not of type Integer 또는 groovy-all:2.4.15의 경고와 같은 오류를 보고합니다.
  • ACS Commons 업그레이드 후 JSP 사전 컴파일러 오류가 표시됩니다. File tld:http://sling.apache.org/taglibs/sling/1.0 not found

근본 원인:

Cloud Manager에서 제거가 예약된 API 사용을 감지하면 더 이상 사용되지 않는 라이브러리 경고가 발생합니다. 이전 ACS AEM Commons 패키지에는 ch.qos.logback이(가) 일시적으로 포함되어 있으며 AEMaaCS에서 온프레미스 ACS Commons 분류자를 사용하는 경우에도 이 경고가 트리거됩니다. Cloud Service에서 더 이상 사용되지 않는 API(예: com.day.cq.contentsync.handler.util.RequestResponseFactory)를 참조하는 고객 코드는 유사한 오류를 생성합니다. Adobe 관리 플랫폼 번들의 로그백 참조는 배포 블록을 발생시키지 않으며 고객 조치를 필요로 하지 않습니다.

확인하는 방법

  1. ch.qos.logback.*, groovy-all:2.4.15, com.day.cq.contentsync.handler.util 또는 ACS Commons 번들 버전을 참조하는 항목에 대한 Cloud Manager 빌드 로그를 검토하십시오. 로그에 액세스할 수 없는 경우 Cloud Manager > 파이프라인 > 실행 > 로그를 통해 다운로드합니다.

  2. com.adobe.acs:acs-aem-commons-bundle:5.2.0과(와) 같은 줄 또는 로그백을 참조하는 경고를 찾아 정확한 ACS Commons 버전을 확인합니다.

  3. 전체 Maven 종속성 트리를 실행하여 충돌하는 버전을 확인합니다.

    code language-none
    mvn dependency:tree -Dincludes=com.adobe.acs:acs-aem-commons*
    
  4. 고객 소유 파일에서 직접 로그백 참조를 검색합니다.

    • Windows:

      code language-none
      findstr /S /N /I "ch.qos.logback" pom.xml *.xml *.yml *.yaml
      

해결 방법 resolution

  1. ACS Commons 버전 또는 분류자 불일치(가장 일반적): 프로젝트의 all/pom.xml에서 ACS Commons 종속성을 확인하십시오. <classifier>cloud</classifier>이(가) 있고 버전이 6.11.0 이상인지 확인하십시오. 항목은
    과(와) 유사해야 합니다.

    code language-none
    <groupId>com.adobe.acs</groupId>
    <artifactId>acs-aem-commons-all</artifactId>
    <version>6.16.0</version>
    <classifier>cloud</classifier>
    

종속성 트리에 충돌하는 버전이 나타나면 이전 ACS Commons 빌드에 대한 직접 또는 전이적 참조를 제거하십시오.

​2. 제거된 API를 참조하는 고객 코드: 코드 베이스에서 Cloud Manager 로그에 플래그가 지정된 더 이상 사용되지 않는 패키지를 검색합니다. RequestResponseFactory과(와) 같이 제거된 API의 사용을 Sling 빌더 API(org.apache.sling.api.request.builder.Builders 또는 SlingUriBuilder)로 바꾸십시오. Cloud Manager 코드 스캔 을 다시 실행하여 더 이상 사용되지 않는 API 경고가 유지되지 않는지 확인합니다.
​3. ACS Commons 업데이트 후 JSP 사전 컴파일러 오류: Sling JSP Taglib 종속성을 scope=provided:
(으)로 ui.apps 모듈에 추가

"
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
<version>2.4.0</version>
<scope>제공</scope>
"

파이프라인을 다시 실행하고 tld not found 오류가 제거되었는지 확인합니다.

​4. 이후 버전에서 aemanalyzer 구성 오류: 버전 1.6.16이(가) Service.ranking is not of type Integer과(와) 같은 오류를 반환하는 경우 버전 1.6.4 또는 1.6.14(으)로 전환하십시오. 파이프라인을 다시 실행하고 분석기 오류 없이 완료되는지 확인합니다.
​5. 더 이상 사용되지 않는 것으로 플래그가 지정된 groovy-all:2.4.15: Orbinson Groovy 콘솔 변형으로 바꾸기:

"
<groupId>be.orbinson.aem</groupId>
<artifactId>aem-groovy-console-all</artifactId>
<version>19.0.8</version>
<type>zip</type>
"

코드 품질 확인 단계에서 groovy-all 경고를 보고하지 않습니다. Groovy Console을 사용하지 않는 경우 완전히 제거하십시오.

​6. Adobe 관리 번들의 로그백 참조 전용: 코드 품질에 더 이상 사용되지 않는 라이브러리 경고가 없고 로그백 항목만 로그에 ServiceEvent REGISTERED [ ch.qos.logback.core.filter.Filter]과(와) 같은 런타임 전용 줄인 경우 빌드 단계에서 경고가 없으면 작업이 필요하지 않습니다. Adobe 플랫폼 번들에서 시작되며 배포를 차단하지 않습니다.
​7. 유효성 검사: 새 코드 스캔 또는 전체 파이프라인 실행을 시작합니다. 빌드 로그에 region-deprecated-api 아래에 ch.qos.logback 항목이 표시되지 않고 고객 코드 또는 ACS Commons에 대해 더 이상 사용되지 않는 API 경고가 표시되지 않는지 확인하십시오.

관련 읽기

recommendation-more-help
experience-cloud-kcs-help-kbarticles