CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-maven--maven-model

Model for Maven POM (Project Object Model)

Pending
Overview
Eval results
Files

dependencies.mddocs/

Dependency Management

Classes for managing project dependencies, dependency scopes, exclusions, and dependency management sections. These classes handle all aspects of Maven's dependency resolution and management system.

Capabilities

Dependency

Represents a single project dependency with its coordinates, scope, and configuration options.

public class Dependency {
    // Core coordinates
    public String getGroupId();
    public void setGroupId(String groupId);
    public String getArtifactId();
    public void setArtifactId(String artifactId);
    public String getVersion();
    public void setVersion(String version);
    public String getType();
    public void setType(String type);
    public String getClassifier();
    public void setClassifier(String classifier);
    
    // Dependency configuration
    public String getScope();
    public void setScope(String scope);
    public String getSystemPath();
    public void setSystemPath(String systemPath);
    public boolean isOptional();
    public String getOptional();
    public void setOptional(String optional);
    
    // Exclusions
    public List<Exclusion> getExclusions();
    public void setExclusions(List<Exclusion> exclusions);
    public void addExclusion(Exclusion exclusion);
    public void removeExclusion(Exclusion exclusion);
    
    // Utility methods
    public String getManagementKey();
    public String toString();
    public Dependency clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

Dependency dependency = new Dependency();
dependency.setGroupId("junit");
dependency.setArtifactId("junit");
dependency.setVersion("4.13.2");
dependency.setScope("test");

// Add exclusion
Exclusion exclusion = new Exclusion();
exclusion.setGroupId("org.hamcrest");
exclusion.setArtifactId("hamcrest-core");
dependency.addExclusion(exclusion);

model.addDependency(dependency);

DependencyManagement

Container for managing default dependency versions and configurations that can be inherited by child modules.

public class DependencyManagement {
    public List<Dependency> getDependencies();
    public void setDependencies(List<Dependency> dependencies);
    public void addDependency(Dependency dependency);
    public void removeDependency(Dependency dependency);
    
    // Utility methods
    public DependencyManagement clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Usage Example:

DependencyManagement depMgmt = new DependencyManagement();

Dependency managedDep = new Dependency();
managedDep.setGroupId("org.springframework");
managedDep.setArtifactId("spring-core");
managedDep.setVersion("5.3.21");

depMgmt.addDependency(managedDep);
model.setDependencyManagement(depMgmt);

Exclusion

Represents a dependency exclusion, used to exclude transitive dependencies.

public class Exclusion {
    public String getGroupId();
    public void setGroupId(String groupId);
    public String getArtifactId();
    public void setArtifactId(String artifactId);
    
    // Utility methods
    public String toString();
    public Exclusion clone();
    public InputLocation getLocation(Object key);
    public void setLocation(Object key, InputLocation location);
}

Common Dependency Scopes:

  • compile (default): Available in all classpaths
  • provided: Available at compile time but not packaged
  • runtime: Not needed at compile time but required at runtime
  • test: Only available for test compilation and execution
  • system: Similar to provided but must specify systemPath
  • import: Only used in dependencyManagement for importing POM dependencies

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-maven--maven-model

docs

build-config.md

core-model.md

dependencies.md

index.md

model-merging.md

profiles.md

project-metadata.md

repositories.md

utility-classes.md

xml-io.md

tile.json