/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.maven; import com.google.common.collect.Lists; import org.apache.maven.model.Resource; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import java.io.File; import java.util.Collections; import java.util.List; /** */ @SuppressWarnings("unused") @Mojo(name = "compile", threadSafe = true, requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, defaultPhase = LifecyclePhase.COMPILE) public class CompileMojo extends AbstractCompileMojo { @Parameter(property = "project.build.outputDirectory") private File output; @Parameter private List<File> sources; @Parameter private List<File> classes; @Parameter private List<File> jreClasses; @Override protected File getOutputFolder() { return output; } @Override protected List<File> getSources() { if (sources != null) { return sources; } List<File> sources = Lists.newArrayList(); for (String source : mavenProject.getCompileSourceRoots()) { sources.add(new File(source)); } for (Resource res : mavenProject.getResources()) { sources.add(new File(res.getDirectory())); } return sources; } @Override protected List<File> getClassPath() { if (classes != null) { return classes; } File output = new File(mavenProject.getBuild().getOutputDirectory()); return Collections.singletonList(output); } protected List<File> getJreClassPath() { return jreClasses != null ? jreClasses : Collections.<File>emptyList(); } }