快速开始
欢迎使用 Gradle Parser!本指南将帮助您开始在 Go 中解析 Gradle 构建文件。
安装
使用 Go 模块安装 Gradle Parser:
bash
go get github.com/scagogogo/gradle-parser/pkg/api
快速开始
这是一个简单的示例来帮助您开始:
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/gradle-parser/pkg/api"
)
func main() {
// 解析 Gradle 文件
result, err := api.ParseFile("build.gradle")
if err != nil {
log.Fatal(err)
}
// 打印项目信息
project := result.Project
fmt.Printf("项目名称: %s\n", project.Name)
fmt.Printf("项目组: %s\n", project.Group)
fmt.Printf("项目版本: %s\n", project.Version)
fmt.Printf("项目描述: %s\n", project.Description)
}
基础解析
从文件解析
解析 Gradle 文件的最常见方式:
go
result, err := api.ParseFile("path/to/build.gradle")
if err != nil {
log.Fatal(err)
}
// 访问解析的项目
project := result.Project
从字符串解析
如果您有 Gradle 内容作为字符串:
go
gradleContent := `
plugins {
id 'java'
}
group = 'com.example'
version = '1.0.0'
`
result, err := api.ParseString(gradleContent)
if err != nil {
log.Fatal(err)
}
从 Reader 解析
用于流式传输或其他 I/O 源:
go
import "strings"
reader := strings.NewReader(gradleContent)
result, err := api.ParseReader(reader)
if err != nil {
log.Fatal(err)
}
理解解析结果
ParseResult
包含:
- Project: 主要项目信息和组件
- RawText: 原始文件内容(如果启用)
- Errors: 遇到的任何解析错误
- Warnings: 非致命解析警告
- ParseTime: 解析文件所用的时间
go
result, err := api.ParseFile("build.gradle")
if err != nil {
log.Fatal(err)
}
fmt.Printf("解析时间: %s\n", result.ParseTime)
fmt.Printf("警告数量: %d\n", len(result.Warnings))
// 访问项目组件
project := result.Project
fmt.Printf("依赖数量: %d\n", len(project.Dependencies))
fmt.Printf("插件数量: %d\n", len(project.Plugins))
fmt.Printf("仓库数量: %d\n", len(project.Repositories))
错误处理
Gradle Parser 提供详细的错误信息:
go
result, err := api.ParseFile("build.gradle")
if err != nil {
log.Printf("解析文件失败: %v", err)
return
}
// 检查解析警告
if len(result.Warnings) > 0 {
fmt.Println("解析警告:")
for _, warning := range result.Warnings {
fmt.Printf(" - %s\n", warning)
}
}
下一步
现在您已经掌握了基础知识,探索更多功能:
系统要求
- Go 1.19 或更高版本
- 无需外部依赖
支持的格式
- Groovy DSL (
build.gradle
) - Kotlin DSL (
build.gradle.kts
) - 基本支持 - 单模块和多模块项目