Skip to content

Getting Started ​

Welcome to Gradle Parser! This guide will help you get up and running with parsing Gradle build files in Go.

Installation ​

Install Gradle Parser using Go modules:

bash
go get github.com/scagogogo/gradle-parser/pkg/api

Quick Start ​

Here's a simple example to get you started:

go
package main

import (
    "fmt"
    "log"
    "github.com/scagogogo/gradle-parser/pkg/api"
)

func main() {
    // Parse a Gradle file
    result, err := api.ParseFile("build.gradle")
    if err != nil {
        log.Fatal(err)
    }

    // Print project information
    project := result.Project
    fmt.Printf("Project: %s\n", project.Name)
    fmt.Printf("Group: %s\n", project.Group)
    fmt.Printf("Version: %s\n", project.Version)
    fmt.Printf("Description: %s\n", project.Description)
}

Basic Parsing ​

Parse from File ​

The most common way to parse a Gradle file:

go
result, err := api.ParseFile("path/to/build.gradle")
if err != nil {
    log.Fatal(err)
}

// Access the parsed project
project := result.Project

Parse from String ​

If you have Gradle content as a string:

go
gradleContent := `
plugins {
    id 'java'
}

group = 'com.example'
version = '1.0.0'
`

result, err := api.ParseString(gradleContent)
if err != nil {
    log.Fatal(err)
}

Parse from Reader ​

For streaming or other I/O sources:

go
import "strings"

reader := strings.NewReader(gradleContent)
result, err := api.ParseReader(reader)
if err != nil {
    log.Fatal(err)
}

Understanding the Result ​

The ParseResult contains:

  • Project: The main project information and components
  • RawText: Original file content (if enabled)
  • Errors: Any parsing errors encountered
  • Warnings: Non-fatal parsing warnings
  • ParseTime: Time taken to parse the file
go
result, err := api.ParseFile("build.gradle")
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Parse time: %s\n", result.ParseTime)
fmt.Printf("Warnings: %d\n", len(result.Warnings))

// Access project components
project := result.Project
fmt.Printf("Dependencies: %d\n", len(project.Dependencies))
fmt.Printf("Plugins: %d\n", len(project.Plugins))
fmt.Printf("Repositories: %d\n", len(project.Repositories))

Error Handling ​

Gradle Parser provides detailed error information:

go
result, err := api.ParseFile("build.gradle")
if err != nil {
    log.Printf("Failed to parse file: %v", err)
    return
}

// Check for parsing warnings
if len(result.Warnings) > 0 {
    fmt.Println("Parsing warnings:")
    for _, warning := range result.Warnings {
        fmt.Printf("  - %s\n", warning)
    }
}

Next Steps ​

Now that you have the basics, explore more features:

Requirements ​

  • Go 1.19 or later
  • No external dependencies required

Supported Formats ​

  • Groovy DSL (build.gradle)
  • Kotlin DSL (build.gradle.kts) - Basic support
  • Single and multi-module projects

Released under the MIT License.