일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- CoordinatorLayout
- lifecycle
- Navigation
- HTTP
- onMeasure
- CustomView
- kotlin
- 알림
- hilt
- DataBinding
- View
- Algorithm
- activity
- notification
- 안드로이드
- 백준
- Android
- 알고리즘
- onLayout
- AppBarLayout
- room
- recyclerview
- LiveData
- 코틀린
- sqlite
- ViewModel
- BOJ
- Behavior
- CollapsingToolbarLayout
- Coroutine
- Today
- Total
개발일지
Android in A..Z - Module 베포 (Jitpack) 본문
Jitpack
Library를 Maven이나 jcenter같은 곳에 베포할 수 있지만 Jitpack을 사용하면 Android Module을 쉽게 베포할 수 있습니다. 또한 Android뿐만 아니라 Gradle을 사용한 프로젝트를 쉽게 베포할 수 있습니다.
Jitpack은 Github에 저장된 Repository를 공유하기 때문에 Git을 사용하는 개발자는 쉽게 접근할 수 있고 설정도 간편하다는 장점이 있습니다.
https://jitpack.io/docs/ANDROID/
Plugin 설정하기
Module에 위치한 Gradle에서 Plugin을 설정합니다.
* com.android.library와 maven-publish는 필수입니다.
plugins {
id 'com.android.library'
id 'kotlin-android'
id 'maven-publish'
}
Gradle 설정하기
Module에 위치한 Gradle에서 aar파일을 추출하기 위한 Maven관련 Gradle을 설정합니다.
https://developer.android.com/studio/build/maven-publish-plugin#kts
// Because the components are created only during the afterEvaluate phase, you must
// configure your publications using the afterEvaluate() lifecycle method.
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'com.example.MyLibrary'
artifactId = 'final'
version = '1.0'
}
// Creates a Maven publication called “debug”.
debug(MavenPublication) {
// Applies the component for the debug build variant.
from components.debug
groupId = 'com.example.MyLibrary'
artifactId = 'final-debug'
version = '1.0'
}
}
}
}
Jitpack 설정하기
아래의 파일을 프로젝트 최상위 디렉토리에 작성합니다.
jitpack.yml
jdk:
- openjdk11
Git 설정하기
마지막 단계입니다. Git Repository에 프로젝트를 Push하고 Tag를 따내면 끝입니다.
Jitpack에서 확인하기
로그에 초록색이 나오면 정상적으로 등록된 것이고 아래 설명에 따라 dependency를 추가할 수 있습니다.
Git
https://github.com/KangTaeJong98/Library
Jitpack
https://jitpack.io/#KangTaeJong98/Library
필자가 베포하면서 발생했던 Jitpack Error
1. Java Version Error
=> jitpack.yml을 최상위 폴더에 추가하니까 해결완료
FAILURE: Build failed with an exception.
* Where:
Build file '/home/jitpack/build/app/build.gradle' line: 2
* What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
2. Plugin Error
=> maven-publish를 plugin에 추가하니까 해결완료 (maven-publish는 Gradle 7.0 이상 기준입니다.)
FAILURE: Build failed with an exception.
* Where:
Script '/script/maven-plugin.gradle' line: 2
* What went wrong:
A problem occurred evaluating script.
> Failed to apply plugin 'com.github.dcendents.android-maven'.
> Could not create plugin of type 'AndroidMavenPlugin'.
> Could not generate a decorated class for type AndroidMavenPlugin.
> org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider
3. Build는 성공했지만 Jitpack에서 Dependency를 불러 올 수 없을 때
=> Maven관련 Gradle설정하니까 해결완료
afterEvaluate {
publishing {
publications {
paidRelease(MavenPublication) {
// The following applies a component to this publication
// which results in publishing an app bundle.
from components.release
groupId = 'com.taetae98.library'
artifactId = 'final'
version = '0.0.1'
}
paidDebug(MavenPublication) {
// The following applies a component to this publication
// which results in publishing APKs in a ZIP file.
from components.debug
groupId = 'com.taetae98.library'
artifactId = 'final-debug'
version = '0.0.1'
}
}
}
}
'Android (안드로이드)' 카테고리의 다른 글
Android in A..Z - Glide Advanced (0) | 2021.10.01 |
---|---|
Android in A..Z - Span (0) | 2021.09.16 |
Android in A..Z - Intent (0) | 2021.08.30 |
Android In A..Z - Google API (Google Map) (0) | 2021.08.18 |
Android in A..Z - WebView Bridge (0) | 2021.08.05 |