Jetifier

독립형 Jetifier 도구는 동등한 AndroidX 패키지를 대신 사용하도록 지원 라이브러리에 종속된 라이브러리를 이전합니다. 이 도구를 사용하면 Android 스튜디오와 함께 번들로 제공되는 Android Gradle 플러그인을 사용하는 대신 개별 라이브러리를 직접 이전할 수 있습니다.

Jetifier 설치

Jetifier를 설치하려면 ZIP 파일을 다운로드하여 압축을 풉니다. 기기에 자바 버전 1.8 이상이 설치되어 있어야 합니다.

사용

라이브러리를 처리하려면 도구에서 만들어야 하는 현재 라이브러리 경로 및 출력 파일 경로를 전달합니다. Jetifier는 중첩된 아카이브를 포함하여 JAR, AAR 및 ZIP 파일을 지원합니다.

./jetifier-standalone -i <source-library> -o <output-library>

옵션

다음 표에는 Jetifier 도구 명령어에 사용할 수 있는 옵션이 나와 있습니다.

옵션 필수? 설명
-i, --input <path> 입력 라이브러리의 경로(JAR, AAR 또는 ZIP)
-o, --output <path> 출력 파일의 경로. 파일이 이미 존재하면 Jetifier가 파일을 덮어씁니다.
-c, --config <path> 아니요 선택적 맞춤 구성 파일의 경로
-l, --log <level> 아니요 로깅 수준. 허용되는 값은 다음과 같습니다.
  • error
  • warning
  • info
  • verbose
지정하지 않으면 기본값은 'warning'입니다.
-r 아니요 리버스 모드에서 작동합니다('de-jetification').
-rebuildTopOfTree,
--rebuildTopOfTree
아니요 생성된 POM 파일에 따라 Maven 배포의 ZIP을 다시 빌드합니다.
설정하면 재작성된 모든 라이브러리가 지원 라이브러리의 일부인 것으로 간주됩니다. Jetifier 처리에는 필요하지 않습니다.
-s, --strict 아니요 규칙이 누락되었을 때 대체하지 않습니다. 대신 오류를 발생시킵니다.
-stripSignatures,
--stripSignatures
아니요 서명된 라이브러리를 Jetifier 처리할 때 오류를 발생시키지 않습니다. 대신 서명 파일을 제거합니다.
-t, -timestamp <arg> 아니요 보관처리된 항목에 수정된 시간으로 사용할 타임스탬프 정책입니다. 값: keepPrevious(기본값) 에포크 또는 지금

다음 예에서는 현재 디렉터리의 libraryToProcess.aar 라이브러리에서 유틸리티를 실행하여 동일한 디렉터리의 result.aar에 출력을 씁니다.

./jetifier-standalone -i libraryToProcess.aar -o result.aar

사용 참고사항

Jetifier는 android.support.* 패키지를 가리키는 자바, XML, POM 및 ProGuard 참조를 이전하여 상응하는 androidx.* 패키지를 가리키도록 변경합니다.

android.support.*의 ProGuard 와일드 카드가 항상 androidx.* 패키지에 직접 매핑되는 것은 아니므로 Jetifier는 적합한 모든 대체 항목을 생성합니다.

android.support.* 패키지에 지원 라이브러리 아티팩트에서 제공되지 않는 유형이 있다면 Jetifier는 유형의 매핑이 있는 한 계속 이 유형을 이전합니다. 그러나 모든 맞춤 유형을 충분히 처리하는 일반적인 매핑 규칙이 없을 수 있으므로 이 이전의 작동은 보장되지 않습니다.

고급 사용법

Jetifier 유틸리티는 일부 고급 사용 사례를 지원합니다.

리버스 모드

-r 플래그를 전달하면 유틸리티는 리버스 모드로 실행됩니다. 이 모드에서 유틸리티는 AndroidX API를 동등한 지원 라이브러리로 변환합니다. 리버스 모드는 AndroidX API를 사용하는 라이브러리를 개발 중이지만 지원 라이브러리를 사용하는 버전을 배포해야 하는 경우 유용합니다.

다음 예에서는 현재 디렉터리의 myAndroidXLib.aar 라이브러리에서 리버스 모드로 유틸리티를 실행하여 동일한 디렉터리의 supportLibVersion.aar에 출력을 씁니다.

./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar

맞춤 구성 파일

Jetifier 도구는 구성 파일을 사용하여 지원 라이브러리 클래스를 이에 상응하는 AndroidX 클래스에 매핑합니다. 필요한 경우 이 매핑을 변경하는 맞춤 구성 파일을 만들 수 있습니다. 실제로 지원 라이브러리의 멤버가 아닌 새 클래스를 매핑에 추가할 수도 있습니다. 예를 들어 자체 클래스 중 하나를 AndroidX를 사용하도록 작성된 후속 클래스로 대체하도록 매핑을 수정할 수 있습니다.

맞춤 구성 파일을 사용하려면 다음 단계를 따르세요.

  1. 유틸리티의 jetifier-core-*.jar 파일에서 default.generated.config 파일을 추출하여 저장합니다.
  2. 필요한 경우 구성 파일의 사본을 수정합니다.
  3. -c 플래그를 사용하여 파일을 유틸리티에 전달합니다.

예를 들면 다음과 같습니다.

./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config