All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.commsen.em.maven.plugins.DynamicMavenPlugin Maven / Gradle / Ivy

package com.commsen.em.maven.plugins;

import org.apache.maven.MavenExecutionException;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginExecution;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Requirement;

import com.commsen.em.maven.util.MavenConfig;

public abstract class DynamicMavenPlugin {

	@Requirement
	MavenConfig mavenConfig;
	
	protected Plugin createPlugin(String groupId, String artifactId, String version, String configuration,
			String executionId, String goal, String phase) throws MavenExecutionException {
		Plugin plugin = new Plugin();
		plugin.setGroupId(groupId);
		plugin.setArtifactId(artifactId);
		plugin.setVersion(version);

		PluginExecution execution = new PluginExecution();
		execution.setId(executionId);
		execution.addGoal(goal);
		if (phase != null) {
			execution.setPhase(phase);
		}
		if (configuration != null) {
			execution.setConfiguration(mavenConfig.asXpp3Dom(configuration));
		}
		plugin.addExecution(execution);

		return plugin;
	}


	protected Plugin getPlugin(MavenProject project, String pluginGAV) {
		return project.getBuild().getPluginsAsMap().get(pluginGAV);
	}
	
	public void configurePlugin(Plugin plugin, String execution, String configuration) throws MavenExecutionException {
		if (plugin == null) return;
		if (execution == null || execution.trim().isEmpty()) return;
		plugin.getExecutionsAsMap().get(execution).setConfiguration(mavenConfig.asXpp3Dom(configuration));
	}
	
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy