🔓 CheckLicenses 检查依赖许可证兼容性
🔍
CheckLicenses检查项目所有依赖包的许可证是否兼容,相当于执行composer licenses --check,常用于发布前合规审查。
📋 签名
go
func (c *Composer) CheckLicenses() (string, error)📥 参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 本方法不接收任何参数 |
📤 返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一个返回值 | string | 许可证检查结果的文本输出 |
| 第二个返回值 | error | 执行过程中发生错误时返回,成功时为 nil |
📝 示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.NewComposer()
if err != nil {
log.Fatalf("创建 Composer 实例失败: %v", err)
}
output, err := comp.CheckLicenses()
if err != nil {
log.Fatalf("检查许可证失败: %v", err)
}
fmt.Println("许可证检查结果:")
fmt.Println(output)
}🚀 进阶
- 📋 若只需查看许可证清单而不做兼容检查,使用
Licenses();如需指定格式(如json),使用LicensesWithFormat(format)。 - 🧪 在 CI/CD 流水线中调用本方法,可在发布前自动拦截不兼容许可证(如 GPL 误入商业项目)。
- ⚙️ 如需自定义检查选项(如
--no-dev),改用LicensesWithOptions(options map[string]string)。 - 🔗 底层依赖
Run方法执行命令,工作目录与 Composer 二进制路径由Composer实例配置决定。