Skip to content

📊 GetVersionInfo

获取 Composer 版本的结构化信息,包括版本号、主/次/补丁版本号与发布日期。等价于执行 composer --version 并将输出解析为 *VersionInfo

何时使用

当需要在代码中按主版本号做分支判断、记录发布日期或生成版本报告时使用。相比 GetVersion 仅返回字符串,本方法提供可直接访问的字段。

签名

go
func (c *Composer) GetVersionInfo() (*VersionInfo, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*VersionInfo结构化版本信息
第二返回值error执行或解析失败时返回

VersionInfo 主要字段:

字段类型说明
Versionstring完整版本号,例如 2.1.6
FullOutputstring原始命令输出
Majorint主版本号
Minorint次版本号
Patchint补丁版本号
ReleaseDatetime.Time发布日期(可空)

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatalf("初始化失败: %v", err)
	}

	info, err := comp.GetVersionInfo()
	if err != nil {
		log.Fatalf("获取版本信息失败: %v", err)
	}

	fmt.Printf("Composer %d.%d.%d\n", info.Major, info.Minor, info.Patch)
	if !info.ReleaseDate.IsZero() {
		fmt.Printf("发布日期: %s\n", info.ReleaseDate.Format("2006-01-02"))
	}
}

进阶

  • 仅需版本号字符串时使用更轻量的 GetVersion
  • 解析逻辑封装在 ParseVersionOutput(output) 中,可对任意 composer --version 输出复用。
  • 升级 Composer 后再次调用可确认新版本,参见 SelfUpdate

基于 MIT 许可证发布