java

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package java provides dependency resolution for Maven/Java packages.

Overview

This package implements deps.Language for Java, supporting:

  • Maven Central registry resolution via maven client
  • pom.xml manifest parsing

Registry Resolution

Use [Language.Resolver] to fetch dependencies from Maven Central:

resolver, _ := java.Language.Resolver()
g, _ := resolver.Resolve(ctx, "com.google.guava:guava", deps.Options{MaxDepth: 10})

Package names use Maven coordinates: "groupId:artifactId".

Manifest Parsing

Parse pom.xml files:

parser, _ := java.Language.Manifest("pom", nil)
result, _ := parser.Parse("pom.xml", deps.Options{})

The parser extracts dependencies from <dependencies> elements, excluding test and provided scopes.

maven: github.com/matzehuels/stacktower/pkg/integrations/maven deps.Language: github.com/matzehuels/stacktower/pkg/deps.Language

Index

Constants

This section is empty.

Variables

View Source
var Language = &deps.Language{
	Name:            "java",
	DefaultRegistry: "maven",
	RegistryAliases: map[string]string{"maven-central": "maven", "mvn": "maven"},
	ManifestTypes:   []string{"pom"},
	ManifestAliases: map[string]string{"pom.xml": "pom"},
	NewResolver:     newResolver,
	NewManifest:     newManifest,
	ManifestParsers: manifestParsers,
	NormalizeName:   NormalizeCoordinate,
}

Language provides Java dependency resolution via Maven Central. Supports pom.xml manifest files.

Functions

func NormalizeCoordinate added in v0.2.2

func NormalizeCoordinate(coord string) string

NormalizeCoordinate converts filename-safe coordinates to Maven format. Since colons are not allowed in filenames (especially on Windows and in some build tools), underscores can be used as a substitute. This function converts "groupId_artifactId" to "groupId:artifactId" when no colon is present.

Examples:

  • "com.google.guava:guava" → "com.google.guava:guava" (unchanged)
  • "com.google.guava_guava" → "com.google.guava:guava" (converted)

Types

type POMParser

type POMParser struct {
	// contains filtered or unexported fields
}

POMParser parses Maven pom.xml files. It extracts dependencies and optionally resolves them via Maven Central.

func (*POMParser) IncludesTransitive

func (p *POMParser) IncludesTransitive() bool

func (*POMParser) Parse

func (p *POMParser) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)

func (*POMParser) Supports

func (p *POMParser) Supports(name string) bool

func (*POMParser) Type

func (p *POMParser) Type() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL