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 ¶
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
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)