我正在为 gradle 开发一个插件,它将检查许可证类型的依赖关系。我在插件 API 中没有找到任何如何获取项目的依赖项列表然后检索它的元数据(如许可证类型)的内容。
可以在gradle中使用吗?
Configuration
对于一般分析依赖关系,请查看Gradle 构建语言参考,特别是Configuration.resolvedConfiguration
和Configuration.incoming
.
也就是说,Gradle 的依赖模型不会捕获许可证。除非您有一些可以查询此信息的外部服务,否则另一个选项是解析 Maven/Ivy 模块描述符。
Gradle 目前不提供对 Maven/Ivy 模块描述符的直接访问。相反,您将创建一个分离的配置,使用指向描述符的依赖项动态填充它,解析配置,并自己解析描述符(例如,使用 Groovy 的优秀XmlSlurper
)。这不是微不足道的,而是可行的。
另一种方法是使用存储库管理器的许可证报告功能,例如Artifactory与Black Duck结合使用。