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

net.ltgt.gwt.maven.AbstractAddSuperSourcesMojo Maven / Gradle / Ivy

package net.ltgt.gwt.maven;

import java.util.Collections;
import java.util.List;

import org.apache.maven.model.Resource;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;

public abstract class AbstractAddSuperSourcesMojo extends AbstractMojo {

  /**
   * Name of the module into which to optionally relocate super-sources.
   * 

* Super-sources will be relocated into a {@code super} subfolder. */ @Parameter protected String moduleName; @Parameter(defaultValue = "${project}", required = true, readonly = true) protected MavenProject project; @Override public void execute() throws MojoExecutionException { for (String superSourceRoot : SourcesAsResourcesHelper.filterSourceRoots( getLog(), getProjectResources(), Collections.singleton(getSuperSourceRoot()))) { Resource resource = new Resource(); resource.setDirectory(superSourceRoot); if (isSuperSourceRelocated()) { if (StringUtils.isBlank(moduleName)) { throw new MojoExecutionException("Cannot relocate super-sources if moduleName is not specified"); } String targetPath = moduleName.replace('.', '/'); // Keep only package name targetPath = targetPath.substring(0, targetPath.lastIndexOf('/')); // Relocate into 'super' subfolder targetPath = SourcesAsResourcesHelper.ensureTrailingSlash(targetPath) + "super/"; resource.setTargetPath(targetPath); } addResource(resource); } } protected abstract String getSuperSourceRoot(); protected abstract boolean isSuperSourceRelocated(); protected abstract void addResource(Resource resource); protected abstract List getProjectResources(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy