Android

라이브러리를 배포해보자.

최데브 2024. 8. 24. 15:56

스스로 만든 라이브러리를 배포해보는건 안드로이드 개발자를 시작할때부터 버킷리스트 중

하나였다.

 

이번에 샘플프로젝트를 업데이트 하면서 이미지 crop 하는 커스텀 뷰를 개발했는데

아직 완성도가 높진 않지만 라이브러리로 따로 빼서 관리해보고 싶다는 생각을 했다.

 

그래서 시간도 많겠다 뚝딱 해봤다.

 

아 참 jitPack 을 이용해서 배포한다!

 

1. 라이브러리를 만들기 위해 모듈을 생성해보자

프로젝트를 새로판다.

그럼 기본적으로 app 모듈이 있을텐데 이건 일단 냅두고

모듈을 하나 새로 만들어보자.

 

new Module 을 누르고 Android Library 로 만든다.

 

이렇게 해서 생긴 모듈이 실제 사용되는 라이브러리가 될 예정이다.

 

2. 라이브러리가 될 모듈에 라이브러리화 시키고 싶은 기능들을 넣는다.

나의 경우는 샘플 프로젝트에 있던 코드들을 그대로 옮겨와서 넣었다.

본인이 개발하고 싶은 내용을 이 모듈안에서 구현해준다.

 

3. 배포하기 위한 세팅

여기가 사실 핵심이다.

배포할 모듈의 build.gradle 에 내용을 추가하자.

 

최상단의 plugins 블럭에 주석 해둔 라인을 추가한다.

라이브러리로 올라갈 모듈이라는것을 명시한다.

plugins {
    alias(libs.plugins.android.library)
    alias(libs.plugins.jetbrains.kotlin.android)
    id("maven-publish") //이걸 추가해야한다
}

 

그리고 같은 파일 아래 적당한 곳에 아래 코드를 넣는다.

그룹 id 나 artifactId , version 은 적당하게 원하는대로 수정해주면 된다.

afterEvaluate {
    publishing {
        publications {
            register<MavenPublication>("release") {
                groupId = "com.choidev"
                artifactId = "cropview"
                version = "v1.0.5"

                afterEvaluate {
                    from(components["release"])
                }
            }
        }
    }
}

 

4. 실제 배포하기전 주의할 점

배포하기전에 주의할 점이 있다.

agp , kotiln 버전이 호환성에 문제가 없는지 체크 해줘야한다.

또 현재 jitPack 은 자바 17 을 지원하고 있기 때문에 아래처럼 바꿔주자.

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }

 

또한 compose 를 쓰고 있다면 컴포즈 컴파일러도 코틀린 버전과 문제 없는지 체크해야한다.

https://stackoverflow.com/questions/75128041/this-version-compose-compiler-requires-kotlin-version-1-7-20-but-you-appear-to-b

 

This version Compose Compiler requires Kotlin version 1.7.20 but you appear to be using Kotlin version 1.8.0 which is not known

if you get this error in android studio "This version (1.3.2) of the Compose Compiler requires Kotlin version 1.7.20 but you appear to be using Kotlin version 1.8.0 which is not known to be

stackoverflow.com

이 글을 참고하길 바란다. 나는 이걸 제대로 안보고 몇번이나 버전가지고 삽질했다.

 

5. github 에 레포를 만들고 라이브러리 프로젝트를 올리자.

프로젝트를 github 에 올렸다면 tag 라는걸 만들어줘야한다.

tag 만드는건 아주 간단하니 만약 해본적이 없다면 검색하면 바로 나온다.

적당히 이름을 정해주자. 나는 v1.0.0 이런식의 포멧을 사용했다.

 

6. JitPack 사이트로 간다.

https://jitpack.io/

 

JitPack | Publish JVM and Android libraries

JitPack makes it easy to release your Java or Android library. Publish straight from GitHub or Bitbucket.

jitpack.io

이 곳을 방문하면 검색창 같은게 보이는데 여기에 아까 만들어준

깃헙 레포의 주소를 넣고 검색해준다. 그러면 아래 사진처럼 본인이 만들었던 tag가 보인다.

 

난 이미 생성을 요청했기 때문에 버튼이 없는데 처음 가면 오른쪽에 버튼이 하나 있다.

그걸 누르면 빙글빙글 돌아가는 표시가 나오면서 Jitpack 에서 내 라이브러리를 빌드한다.

실패를 하면 저렇게 빨간색 문서 아이콘이 나오고 성공을 하면 초록색 아이콘이 나온다.

그리고 아래에 내려보면 아래 사진처럼 사용 방법이 나온다.

 

 

빌드가 성공됐다면 저걸 프로젝트에 적절하게 넣어주고 실행하면!

이렇게 제대로 라이브러리가 작동되는걸 볼 수 있다.

 

이렇게 자신만의 라이브러리를 만들어봤다.

 

아래는 만들어본 Android compose CropView 라이브러리다.

리드미 작성이 시급하다..

 

https://github.com/supremehyo/Compose-CropView

 

GitHub - supremehyo/Compose-CropView: Cropview Library

Cropview Library. Contribute to supremehyo/Compose-CropView development by creating an account on GitHub.

github.com

 

반응형