Model for Maven POM (Project Object Model)
—
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.
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);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);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 classpathsprovided: Available at compile time but not packagedruntime: Not needed at compile time but required at runtimetest: Only available for test compilation and executionsystem: Similar to provided but must specify systemPathimport: Only used in dependencyManagement for importing POM dependenciesInstall with Tessl CLI
npx tessl i tessl/maven-org-apache-maven--maven-model