我需要获取所有依赖项及其许可证的列表。
到目前为止,我已经尝试了几个插件,但它们处于各种无法工作的状态......
- hierynomus/license-gradle-plugin似乎没有检测到任何依赖关系。
- dorkbox/Licensing由于一些神秘的 Kotlin 错误而失败。
看来我最好的选择可能是生成 maven pom.xml 并调用 maven 许可证插件......
有什么建议吗?
最佳答案
问题
问题是插件(hierynomus/license-gradle-plugin)默认采用不可解析的依赖配置。 github 存储库中打开了一些问题。
- https://github.com/hierynomus/license-gradle-plugin/issues/182
- https://github.com/hierynomus/license-gradle-plugin/issues/181
- https://github.com/hierynomus/license-gradle-plugin/issues/174
似乎最新的 Gradle 版本或这个插件版本破坏了某些东西。我希望尽快找到解决方案..
这是关于 resolvable dependencies in Gradle documentation 的主题
解决方案
获取报告的解决方法如下。
- 应用插件
- 配置您想要的依赖关系类型 已生成报告。例如对于 Java 项目来说 配置可以是compileClasspath或runtimeClasspath。
下面的构建脚本示例(在 Groovy 中)
/**
* Apply licence report plugin.
*/
plugins {
id "com.github.hierynomus.license-report" version"0.16.1"
}
/**
* You will have to specify for which configuration dependencies should be resolved.
* Note check in Gradle documentation about configuration types that can be resolved.
* https://docs.gradle.org/current/userguide/declaring_dependencies.html#sec:resolvable-consumable-configs
*
* Following are resolvable by default:
* - compileClasspath
* - runtimeClasspath
*/
downloadLicenses {
includeProjectDependencies = true
dependencyConfiguration = 'runtimeClasspath'
// or
// dependencyConfiguration = 'compileClasspath'
}
执行后报告应位于 build/reports/licence
关于Gradle:获取依赖项和许可证列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67393005/