java

package
v1.6.2 Latest Latest
Warning

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

Go to latest
Published: May 13, 2026 License: Apache-2.0 Imports: 16 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/stacktower-io/stacktower/pkg/integrations/maven deps.Language: github.com/stacktower-io/stacktower/pkg/core/deps.Language

Index

Constants

This section is empty.

Variables

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

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

Functions

func NormalizeCoordinate

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 GradleParser

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

GradleParser parses Gradle build files (build.gradle and build.gradle.kts). It extracts dependencies from both Groovy DSL and Kotlin DSL formats.

func (*GradleParser) IncludesTransitive

func (p *GradleParser) IncludesTransitive() bool

func (*GradleParser) Parse

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

func (*GradleParser) Supports

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

func (*GradleParser) Type

func (p *GradleParser) Type() string

type MavenMatcher

type MavenMatcher struct{}

MavenMatcher implements constraint matching for Maven version ranges. Maven version syntax: - Exact: 1.0 - Range: [1.0,2.0), (1.0,2.0], [1.0,), (,2.0] - Multiple ranges: [1.0,2.0),[3.0,4.0)

func (MavenMatcher) ParseConstraint

func (m MavenMatcher) ParseConstraint(constraint string) pubgrub.Condition

ParseConstraint converts a Maven version range to a PubGrub Condition.

func (MavenMatcher) ParseVersion

func (MavenMatcher) ParseVersion(version string) pubgrub.Version

ParseVersion converts a Maven version string to a PubGrub Version. We use SimpleVersion to preserve the full version string including qualifiers like -jre, -android, -SNAPSHOT, etc. This ensures cache key consistency.

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