[Gradle] 오픈소스 직접 repository에 업로드하기 - JitPack

가영·2021년 9월 16일
0
post-thumbnail

분명 dependency에 추가했는데..

코틀린에서 하이버네이트를 사용할 수 있을까? - 우아한 형제들 기술블로그
를 참고해서 코틀린 스프링 프로젝트를 만들다가
글에서 사용하고 있는 kassava 를 계속해서 gradle이 다운받지 못하는 현상이 일어났다.

글에 작성이 되어있는 대로 dependency에

repository {
    jcenter()
}
dependencies {
    ...
    implementation("au.com.console:kassava:2.1.0-rc.1")
    ...
}

다음처럼 추가를 해줬다.
이렇게 줄이 그어졌지만

무시하고 gradle 프로젝트들을 reload했다.
하지만 메서드들은 여전히 import 되지 않고있었다. 당연히 빌드도 실패.
해당 gradle 프로젝트가 제대로 다운되지 않음이 의심되었다.

원인: JCenter의 서비스 중단

검색해보니, 해당 라이브러리가 업로드 되어있던 Jcenter가 서비스를 중단하고 maven으로 마이그레이션 한다고 한다.
maven에도 kassava 프로젝트는 올라가 있었지만 내가 쓰려고 하는 버전은 없었다.
내가 사용할 메서드가 최신버전에만 구현돼있었기 때문에 해당 프로젝트의 github 저장소로 들어가서 확인해보니 jcenter를 리포지토리로 사용하라는 리드미가 업데이트 되지 않은 상태였다.

해결: JitPack

그러던 도중, 원래 오픈소스 라이브러리를 커스터마이징해서 사용할 때 유용한 Jitpack (https://jitpack.io)을 알게 되었다.
깃허브에 소스코드가 올라가있는 프로젝트인 경우 정말 간단하게 업로드하고 사용할 수 있었다.

다운로드 받길 원하는 리포지토리에 가기

내가 다운받고자 한 프로젝트인 kassava github에 들어갔다.

우리는 이제 이 라이브러리를 사용할 우리의 프로젝트 build.gradle.kts 에 이렇게 추가해주면 된다.

repositories {
    mavenCentral()
    // ...
    maven("https://jitpack.io")
}

dependencies {
    // ...
    implementation("com.github.consoleau:kassava:2.1.0") // com.github.{사용자 이름}:{repository name}:{tag}
}

참고로 태그는 여기서 확인할 수 있다.

그냥 버전을 써줘도 되고 커밋 sha 값(짧은 거)을 써줘도 된다.


결과

왕잘됨!!! 😃


+) private repository 는?

jitpack은 private repository도 지원을 해준다 :)
https://jitpack.io/private
여기서 보고 따라하면 된다!

1개의 댓글

comment-user-thumbnail
2021년 9월 19일

멋져요

답글 달기