프로그래밍/DevOps

Github와 Jitpack.io를 이용한 Android 라이브러리 배포

freemmer 2019. 1. 14. 12:47
프로젝트를 진행하다보면 여러개의 모듈이 부가적으로 생깁니다.
다른 프로젝트때 사용하기 용이하게 하기 위해서죠. 이를, 재사용성 이라고도 합니다.
이러한 모듈을 여러방식으로 관리하는데요, '왜 굳이! 번거롭게! Android 라이브러리를 배포하느냐?’ 라고 물으신다면, '더 편하려고 합니다’ 라고 합니다.
처음 등록해서 배포하기 번거롭지만, 사용하기에는 정말 편하거든요.
포트폴리오로 쓸 수 있다는 점과, 간혹 다른 능력자들의 조언을 받을 수 있다는 것은 덤입니다. :)
추가로, 공개가 꺼려지는 라이브러리들은 Github에 Repository를 만들때 Private으로 만드시면 됩니다. (참고: 'Github Private repository 무료! 이용해보기')

1. GitHub Public Repository 생성



Github에 Repository를 생성하는 것은 몇번의 클릭만으로 쉽게 됩니다.
저의 경우 Read me 파일을 자동생성하게 체크를 한뒤 생성합니다.

2. Android Project 생성하고 모듈(라이브러리) 추가

Github에 Repository를 생성한 뒤에 ‘Clone or download’의 버튼을 눌러 Clone을 위한 주소를 복사합니다.



Git을 이용해서 Clone합니다. 참고로 저는 ‘SourceTree’라는 툴을 이용합니다.
Clone이 끝나면 해당 Repository에 'Android Studio Demo Project생성', '실제로 배포하기 위한 Library Module 추가', 'Demo Project와 Library Module 연결’
순으로 작업을 합니다.


'Android Studio Demo Project생성’은 기존에 프로젝트를 생성하는 것과 별반 다르지 않습니다.
다만 ‘TestLib’이라는 라이브러리를 배포할때, 사용법을 담은 Demo앱을 먼저 생성하고 Project location을 ‘TestLibDemo’가 아닌 ‘TestLib’로 설정합니다.
(Github에 많은 프로젝트가 위 방식을 따르지만 절대적인게 아니며, 다르게 설정하셔도 무방합니다)






Android Demo Project를 생성한 뒤에는 '실제로 배포하기 위한 Library Module 추가’(실제 배포할 라이브러리 ‘TestLib’) 를 위와 같이 합니다.



'Demo Project와 Library Module 연결’의 단계 또한, 기존 방법과 다른점은 없습니다. Demo app의 Dependencies에 Library module을 추가합니다.

3. Build Gradle 설정 및 Github에 Push

2번 단계에서 Android Project를 생성하고 Library module을 추가했습니다.
이제, Jitpack.io와 연결해 주는 설정을 추가합니다.


Project build.gradle에 다음 항목을 추가합니다.
buildscript {
repositories {
...
mavenCentral()
}
dependencies {
...
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
}
현재 android-maven-gradle-plugin의 최신 소스는 2.1 이며, 최신 버전은 'https://github.com/dcendents/android-maven-gradle-plugin'에서 확인 하실 수 있습니다.



배포할 Library의 build.gradle에 다음 항목을 추가합니다.
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.< github ID>'
기본적인 작업이 완료되었습니다. 지금까지 작업한 내용을 Github에 Push 하도록 합니다.

4. Github에서 Release 추가


Github에 Push를 완료한 뒤의 화면입니다.
아직 Release를 하지 않았기 때문에 0으로 표시되는데요, 이제 배포를 위해서 Release를 하도록 합니다.

Release가 0인 경우에 위와 같이 화면이 나오는데요, ‘Create a new release’ 버튼을 눌러 진행합니다.


Release 버전을 입력합니다.
저의 경우 0.1.0을 입력 했습니다. 다른 항목은 optional 이므로 작성하지 않으셔도 무방합니다.



첫번째 Release가 완료되었습니다.

5. Jitpack.io에 빌드&배포하기

https://jitpack.io/ 에 접속하여서 위와같이 Repository 이름을 입력합니다. (Github ID / Repository Name)
프로젝트를 찾게되면 자동으로 빌드하게 되며, 이때 Log부분에 Loding Circle이 표시됩니다.
잠시 기다려서 주시면 Loding Circle이 없어지고 빌드와 배포가 완료됩니다.
※ Private Repo일 경우 Jitpack에 나오지 않습니다. 나중에 포스팅하겠지만, Private Repo 를 사용하기 위해서는 추가 작업을 해야합니다.

6. 배포한 라이브러리 사용해보기


Project build.gradle
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
App build.gradle
dependencies {
...
// com.github.<Github ID>:<Repository Name>:<Release Tag>
implementation 'com.github.freemmer:TestLib:1.0.1'
}
빌드와 배포가 끝난뒤에 Log부분에 파일 모양의 아이콘이 표시됩니다.
이후에는 위와같이 익숙한 방법으로 직접 만든 라이브러리를 사용할 수 있습니다.


반응형