package com.google.gwt.maven; import org.apache.maven.artifact.Artifact; 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.List; /** * Adds all test-source directories as resources, and unpacks and add as resource each test dependency with {@code <type>java-source</type>}. */ @Mojo(name = "import-test-sources", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST) public class ImportTestSourcesMojo extends AbstractImportSourcesMojo { /** * Location where java-source dependencies will be unpacked. */ @Parameter(defaultValue = "${project.build.directory}/generated-resources/gwt-test-sources", required = true) private File importedTestSourcesTargetDirectory; @Override protected File getOutputDirectory() { return importedTestSourcesTargetDirectory; } @Override protected List<String> getSourceRoots() { return project.getTestCompileSourceRoots(); } protected boolean includeArtifact(Artifact artifact) { return Artifact.SCOPE_TEST.equals(artifact.getScope()); } @Override protected void addResource(Resource resource) { project.addTestResource(resource); } @Override protected List<Resource> getProjectResources() { return project.getTestResources(); } }