반응형
LicenseToolsPlugin란
- 사용중인 라이브러리의 라이센스의 정보를 자동으로 생성
- 생성된 파일은 html 형식의 파일로 출력됨
- 출력된 html 파일을 화면에 보여주는 방식으로 라이센스 공개
- 일본의 cookpad라는 회사에서 만든 오픈소스
LicenseToolsPlugin 깃허브 주소
https://github.com/cookpad/LicenseToolsPlugin
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
필요한 Dependency 선언
// project 수준의 gradle에서 선언
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.cookpad.android.plugin:plugin:1.2.6"
}
}
// app 수준의 gradle에서 선언
apply plugin: "com.cookpad.android.plugin.license-tools"
사용 방법
Licenses.yml 파일 생성하기
- 안드로이드 스튜디오 터미널에 다음과 같이 입력한다
- ./gradlew updateLicenses
- 성공했다면 ./app/licenses.yml 파일이 만들어진 것을 확인할 수 있다
- 보기 설정을 Android가 아닌 Project로 해야 보인다
- 실패 했다면 ./gradlew checkLicenses를 먼저 해보고 다시 실시해본다
생성한 파일을 확인하기
- 안드로이드 스튜디오 터미널에 다음과 같이 입력한다
- ./gradlew checkLicenses
- 성공했다면 BUILD SUCCESSFUL 메시지를 볼 수 있다
licenses.html 파일 생성하기
- 안드로이드 스튜디오 터미널에 다음과 같이 입력한다
- ./gradlew generateLicensePage
- 성공 했다면 ./app/src/main/assets/licenses.html 파일이 만들어진 것을 화인할 수 있다
- 보기 설정을 Android가 아닌 Project로 해야 보인다
LicenseToolsPlugin 셋업 시 발생할 수 있는 문제나 주의 사항
- licenses 파일들이 생성되는 과정
- updateLicenses를 통해 licenses.yml 파일을 생성한다
- ./gradlew generateLicensePage는 licenses.yml을 참조하여 licenses.html 파일을 생성한다
- 그렇기 때문에 대부분의 문제는 licenses.yml에 있는 내용 때문에 발생한다
- Could not generate the copyright statement 라는 에러가 발생했을 때
- 해당 artifact 안에 skip: true 항목을 추가 해준다
- 이는 check할 때 해당 라이브러리의 라이센스가 licenses.html에 정의 되어있는지 확인하지 않겠다는 의미이다.
- marven에 등록되어있지 않은 라이브러리는 자동으로 등록할 수 없기 때문에 이와 같은 에러가 발생한다.
- 또는 copyrightHolder에 값을 넣어준다
- 처음 생성되었다면 copyrightHolder 에는 #COPYRIGHT_HOLDER# 같은 무의미한 값이 들어있다
- 하지만 이를 삭제하고 Google 같이 실제 해당 라이브러리를 소유하고 있는 or 제작한 회사 or 개인의 이름 등을 넣어두면된다
- 해당 artifact 안에 skip: true 항목을 추가 해준다
- LicenseToolsPlugin가 모든 라이브러리를 셋업을 해주는 것은 아니다
- 일단 출력한 뒤 실제로 앱을 통해 어떠한 라이브러리에 html로 자동으로 셋업해줬는지 확인하고 사용해야한다.
- Licenses not matched with pom.xml in dependencies 에러가 발생했을 때
- 해당 라이브러리의 버전이 pom.xml에 있는 버전과 다르기 때문에 발생하는 에러이다.
- 해결 방법은 licenses.yml에 들어가서 해당 라이브러리에 forceGenerate: true를 추가해준다
- 그렇게하면 pom.xml에 강제로 해당 버전을 override해줘서 에러를 막아준다.
생성된 html 파일을 보여주기
- 생성된 html 파일을 보여주는 것 만으로도 끝이 난다
- 아래와 같은 모습의 html이 됩니다
반응형
'안드로이드(kotlin)' 카테고리의 다른 글
registerForActivityResult 사용 방법과 startActivityForResult가 Deprecated된 이유 (2) | 2023.01.07 |
---|---|
리사이클러뷰의 생명주기 분석 및 메모릭의 원인 (0) | 2023.01.05 |
Navigation을 사용한 화면 이동 시 라이프사이클 변화 (0) | 2022.12.24 |
안드로이드(Kotlin)를 SOLID로 설계하기 (0) | 2022.12.19 |
Firebase의 analytics로 DebugView 쓰기 (0) | 2022.12.18 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글