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