Spring

플러그인을 사용해 라이선스 보고서 생성하기

Beekei 2022. 9. 6. 16:35
반응형

개발을하며 사용한 모든 오픈소스에 대한 라이센스를 고지해야 한다.

손수 작성하기엔 어려움이 있어 자동으로 작성하는 방법을 찾아보았고 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

반응형