Model for Maven POM (Project Object Model)
—
Build-related classes including Build, BuildBase, plugins, executions, and resource management. These classes define how Maven builds and processes project artifacts.
Main build configuration class that extends BuildBase with additional directory configurations.
public class Build extends BuildBase {
// Source directories
public String getSourceDirectory();
public void setSourceDirectory(String sourceDirectory);
public String getScriptSourceDirectory();
public void setScriptSourceDirectory(String scriptSourceDirectory);
public String getTestSourceDirectory();
public void setTestSourceDirectory(String testSourceDirectory);
// Output directories
public String getOutputDirectory();
public void setOutputDirectory(String outputDirectory);
public String getTestOutputDirectory();
public void setTestOutputDirectory(String testOutputDirectory);
// Build configuration
public String getDirectory();
public void setDirectory(String directory);
public String getFinalName();
public void setFinalName(String finalName);
// Filter configuration
public List<String> getFilters();
public void setFilters(List<String> filters);
public void addFilter(String filter);
public void removeFilter(String filter);
// Extensions
public List<Extension> getExtensions();
public void setExtensions(List<Extension> extensions);
public void addExtension(Extension extension);
public void removeExtension(Extension extension);
// Utility methods
public Build clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Base class for build configuration shared between main Build and profile builds.
public class BuildBase {
// Default goal
public String getDefaultGoal();
public void setDefaultGoal(String defaultGoal);
// Resources
public List<Resource> getResources();
public void setResources(List<Resource> resources);
public void addResource(Resource resource);
public void removeResource(Resource resource);
public List<Resource> getTestResources();
public void setTestResources(List<Resource> testResources);
public void addTestResource(Resource resource);
public void removeTestResource(Resource resource);
// Plugin management
public PluginManagement getPluginManagement();
public void setPluginManagement(PluginManagement pluginManagement);
public List<Plugin> getPlugins();
public void setPlugins(List<Plugin> plugins);
public void addPlugin(Plugin plugin);
public void removePlugin(Plugin plugin);
// Utility methods
public BuildBase clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Represents a Maven plugin with its configuration and executions.
public class Plugin {
// Plugin 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);
// Plugin configuration
public String getExtensions();
public void setExtensions(String extensions);
public boolean isExtensions();
public Object getConfiguration();
public void setConfiguration(Object configuration);
public boolean isInherited();
public void setInherited(boolean inherited);
// Executions
public List<PluginExecution> getExecutions();
public void setExecutions(List<PluginExecution> executions);
public void addExecution(PluginExecution pluginExecution);
public void removeExecution(PluginExecution pluginExecution);
// Dependencies
public List<Dependency> getDependencies();
public void setDependencies(List<Dependency> dependencies);
public void addDependency(Dependency dependency);
public void removeDependency(Dependency dependency);
// Utility methods
public String getKey();
public String toString();
public Plugin clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Usage Example:
Plugin plugin = new Plugin();
plugin.setGroupId("org.apache.maven.plugins");
plugin.setArtifactId("maven-compiler-plugin");
plugin.setVersion("3.8.1");
// Add configuration
plugin.setConfiguration(configuration); // Typically DOM configuration
// Add execution
PluginExecution execution = new PluginExecution();
execution.setId("default-compile");
execution.setPhase("compile");
execution.addGoal("compile");
plugin.addExecution(execution);
build.addPlugin(plugin);Defines a specific execution of a plugin with goals, phase, and configuration.
public class PluginExecution extends ConfigurationContainer {
public String getId();
public void setId(String id);
public String getPhase();
public void setPhase(String phase);
public int getPriority();
public void setPriority(int priority);
// Goals
public List<String> getGoals();
public void setGoals(List<String> goals);
public void addGoal(String goal);
public void removeGoal(String goal);
// Utility methods
public String toString();
public PluginExecution clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Container for managing default plugin versions and configurations.
public class PluginManagement {
public List<Plugin> getPlugins();
public void setPlugins(List<Plugin> plugins);
public void addPlugin(Plugin plugin);
public void removePlugin(Plugin plugin);
// Utility methods
public PluginManagement clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Defines build resources with filtering and inclusion/exclusion patterns.
public class Resource extends FileSet {
public String getTargetPath();
public void setTargetPath(String targetPath);
public String getFiltering();
public void setFiltering(String filtering);
public boolean isFiltering();
// Merge excludes from FileSet
public List<String> getMergeId();
public void setMergeId(List<String> mergeId);
// Utility methods
public Resource clone();
public InputLocation getLocation(Object key);
public void setLocation(Object key, InputLocation location);
}Represents a build extension that extends Maven's core functionality.
public class Extension {
public String getGroupId();
public void setGroupId(String groupId);
public String getArtifactId();
public void setArtifactId(String artifactId);
public String getVersion();
public void setVersion(String version);
// Utility methods
public Extension 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