Skip to content

🔓 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 实例配置决定。

基于 MIT 许可证发布