package de.is24.deadcode4j.plugin.packaginghandler;
import de.is24.deadcode4j.Repository;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.File;
import static de.is24.deadcode4j.Utils.getKeyFor;
/**
* The <code>DefaultPackagingHandler</code> returns the default output directory if it exists.
*
* @since 1.2.0
*/
public class DefaultPackagingHandler extends PackagingHandler {
@Nullable
@Override
public Repository getOutputRepositoryFor(@Nonnull MavenProject project) throws MojoExecutionException {
logger.debug("Project {} has {} packaging, looking for output directory...", getKeyFor(project), project.getPackaging());
File outputDirectory = new File(project.getBuild().getOutputDirectory());
if (!outputDirectory.exists()) {
logger.warn("The output directory of " + getKeyFor(project) +
" does not exist - assuming the project simply has nothing to provide!");
return null;
}
logger.debug(" Found output directory [{}].", outputDirectory);
return new Repository(outputDirectory);
}
@Nonnull
@Override
public Iterable<Repository> getAdditionalRepositoriesFor(@Nonnull MavenProject project) throws MojoExecutionException {
return getJavaFilesOfCompileSourceRootsAsRepositories(project);
}
}