플러그인을 사용해 라이선스 보고서 생성하기
개발을하며 사용한 모든 오픈소스에 대한 라이센스를 고지해야 한다.
손수 작성하기엔 어려움이 있어 자동으로 작성하는 방법을 찾아보았고 Gradle를 사용하고 있다면 Gradle License Report 플러그인을 사용해서 라이센스를 고지하는 파일을 만들 수 있다.
사용법
build.gradle에 플러그인을 추가한다.
사용하고 있는 gradle 버전에 따라 사용하는 플러그인 버전이 다르다.
Gradle 7+
plugins {
id 'com.github.jk1.dependency-license-report' version '2.0'
}
Gradle 6.x
plugins {
id 'com.github.jk1.dependency-license-report' version '1.17'
}
플러그인을 추가했다면 아래 코드를 build.gradle 파일안에 작성한다.
import com.github.jk1.license.render.*
import com.github.jk1.license.filter.ExcludeTransitiveDependenciesFilter
...
licenseReport {
// 라이센스 고지 파일을 반환할 경로 default는 $projectDir/reports/dependency-license
outputDir = "$projectDir/build/licenses"
// markdown 생성
renderers = [new InventoryMarkdownReportRenderer()]
// html 생성
// renderers = [new InventoryHtmlReportRenderer()]
// xml 생성
// renderers = [new XmlReportRenderer()]
// 보고서에 첫 번째 수준 종속성만 표기
filters = [new LicenseBundleNormalizer(), new ExcludeTransitiveDependenciesFilter()]
}
filters에 com.github.jk1.license.filter.LicenseBundleNormalizer를 사용하면 커스텀 정규화도 가능하다.
Markdown, Html, Xml 유형의 파일로 추출할 수 있는데, 나는 README 파일로 사용할 것이므로 Markdown 파일로 생성하였다.
위처럼 설정하고 Gradle Tasks를 확인해보면 reporting에 generateLicenseReport를 확인할 수 있다.
요것을 더블 클릭해 Task를 실행해보면 build.gradle에 설정한 outputDir 경로를 확인해보면 licenses.md 파일이 생성되어있을 것이다.
이렇게 간단하게 라이센스 리포트를 작성하는 방법을 실행해보았다.
생성된 문서들을 자동으로 동기화 할 수 있는 방법을 함께 사용한다면 유용하게 사용할 수 있을 것 같다.
더욱 자세한 방법은 아래 GitHub를 참고
GitHub - jk1/Gradle-License-Report: A plugin for generating reports about the licenses of third party software using Gradle
A plugin for generating reports about the licenses of third party software using Gradle - GitHub - jk1/Gradle-License-Report: A plugin for generating reports about the licenses of third party softw...
github.com