項目當中遇到一些問題,需要排查所有的依賴的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