Model for Maven POM (Project Object Model)
—
Repository and deployment configuration including repository policies, authentication, and distribution management. These classes handle Maven's artifact repository system for dependency resolution and deployment.
Represents a Maven repository for resolving dependencies and plugins.
public class Repository extends RepositoryBase {
public RepositoryPolicy getReleases();
public void setReleases(RepositoryPolicy releases);
public RepositoryPolicy getSnapshots();
public void setSnapshots(RepositoryPolicy snapshots);
// Utility methods
public Repository clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Usage Example:
Repository repository = new Repository();
repository.setId("central");
repository.setName("Maven Central Repository");
repository.setUrl("https://repo1.maven.org/maven2");
// Configure release policy
RepositoryPolicy releasePolicy = new RepositoryPolicy();
releasePolicy.setEnabled("true");
releasePolicy.setUpdatePolicy("daily");
releasePolicy.setChecksumPolicy("warn");
repository.setReleases(releasePolicy);
model.addRepository(repository);Base class containing common repository properties.
public class RepositoryBase {
public String getId();
public void setId(String id);
public String getName();
public void setName(String name);
public String getUrl();
public void setUrl(String url);
public String getLayout();
public void setLayout(String layout);
// Utility methods
public String toString();
public RepositoryBase clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Extends Repository for deployment configuration with unique version handling.
public class DeploymentRepository extends Repository {
public String getUniqueVersion();
public void setUniqueVersion(String uniqueVersion);
public boolean isUniqueVersion();
// Utility methods
public DeploymentRepository clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Defines policies for repository usage including update frequency and checksum validation.
public class RepositoryPolicy {
public String getEnabled();
public void setEnabled(String enabled);
public boolean isEnabled();
public String getUpdatePolicy();
public void setUpdatePolicy(String updatePolicy);
public String getChecksumPolicy();
public void setChecksumPolicy(String checksumPolicy);
// Utility methods
public RepositoryPolicy clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Common Update Policies:
always: Check for updates on every builddaily (default): Check for updates once per dayinterval:X: Check for updates every X minutesnever: Never check for updatesCommon Checksum Policies:
fail: Fail the build if checksums don't matchwarn (default): Log a warning if checksums don't matchignore: Ignore checksum mismatchesConfigures where and how artifacts are deployed and where the project site is distributed.
public class DistributionManagement {
public DeploymentRepository getRepository();
public void setRepository(DeploymentRepository repository);
public DeploymentRepository getSnapshotRepository();
public void setSnapshotRepository(DeploymentRepository snapshotRepository);
public Site getSite();
public void setSite(Site site);
public String getDownloadUrl();
public void setDownloadUrl(String downloadUrl);
public Relocation getRelocation();
public void setRelocation(Relocation relocation);
public String getStatus();
public void setStatus(String status);
// Utility methods
public DistributionManagement clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Usage Example:
DistributionManagement distMgmt = new DistributionManagement();
// Release repository
DeploymentRepository releaseRepo = new DeploymentRepository();
releaseRepo.setId("releases");
releaseRepo.setName("Release Repository");
releaseRepo.setUrl("https://nexus.example.com/repository/releases/");
distMgmt.setRepository(releaseRepo);
// Snapshot repository
DeploymentRepository snapshotRepo = new DeploymentRepository();
snapshotRepo.setId("snapshots");
snapshotRepo.setName("Snapshot Repository");
snapshotRepo.setUrl("https://nexus.example.com/repository/snapshots/");
distMgmt.setSnapshotRepository(snapshotRepo);
model.setDistributionManagement(distMgmt);Defines where project documentation site should be deployed.
public class Site {
public String getId();
public void setId(String id);
public String getName();
public void setName(String name);
public String getUrl();
public void setUrl(String url);
// Utility methods
public Site clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Provides information about artifact relocation when groupId, artifactId, or version has changed.
public class Relocation {
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 getMessage();
public void setMessage(String message);
// Utility methods
public Relocation clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Install with Tessl CLI
npx tessl i tessl/maven-org-apache-maven--maven-model