1. 程式人生 > 其它 >開源軟體license管理

開源軟體license管理

專案當中遇到一些問題,需要排查所有的依賴的license資訊,需要將所有的依賴的license資訊都列出來,由於依賴的繼承和傳遞關係,依賴的數量非常龐大,因此手工來完成這個任務是不太現實,好在已經有很好的開源工具實現了這個功能.

java專案

修改gradle的配置,安裝外掛Gradle-License-Report

plugins {
    id("com.github.jk1.dependency-license-report") version "1.16"
}

licenseReport {
    renderers = arrayOf<ReportRenderer>(InventoryHtmlReportRenderer("report.html","Backend"),com.github.jk1.license.render.CsvReportRenderer())
    filters = arrayOf<DependencyFilter>(LicenseBundleNormalizer())
}

這款外掛會為你生成你專案所有依賴的license報表資訊,可以支援多種報表格式,包括csv,html,pdf等.
安裝以後,會新增如下的task

Reporting tasks
---------------
generateLicenseReport - Generates license report for all dependencies of this project and its subprojects

執行./gradlew generateLicenseReport以後,就可以在build/reports/dependency-license裡找到新生成的report了,新生成的report如下圖

nodejs

npm裡有一個license-checker可以很方便地檢視每個依賴的license資訊,使用前先進行全域性安裝

npm install -g license-checker
npm install -g yui-lint

然後執行如下的命令就可以生成相應的csv報告,注意在執行前要先執行一下yarn install, 確保所有的依賴都已經正確安裝了

license-checker --production --csv > license.csv