org.codehaus.mojo.cobertura.tasks.ReportTask Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cobertura-maven-plugin Show documentation
Show all versions of cobertura-maven-plugin Show documentation
This is the Mojo's Maven plugin for Cobertura. Cobertura is a free Java tool that calculates the percentage of code accessed by
tests. It can be used to identify which parts of your Java program are lacking test coverage.
/*
* Copyright 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.codehaus.mojo.cobertura.tasks;
import java.io.File;
import java.util.Collections;
import java.util.List;
import org.apache.maven.plugin.MojoExecutionException;
import org.codehaus.plexus.util.StringUtils;
/**
* The Report Task.
*
* @author Joakim Erdfelt
*/
public class ReportTask
extends AbstractTask
{
private File dataFile;
private File outputDirectory;
private String outputFormat;
private String sourceEncoding;
private List compileSourceRoots;
/**
* Create ReportTask.
*/
public ReportTask()
{
super( "net.sourceforge.cobertura.reporting.Main" );
}
/**
* {@inheritDoc}
*/
public void execute()
throws MojoExecutionException
{
outputDirectory.mkdirs();
for ( String directory : compileSourceRoots )
{
cmdLineArgs.addArg( "--source", directory );
}
if ( outputDirectory != null )
{
cmdLineArgs.addArg( "--destination", outputDirectory.getAbsolutePath() );
}
if ( dataFile != null )
{
cmdLineArgs.addArg( "--datafile", dataFile.getAbsolutePath() );
}
if ( StringUtils.isNotEmpty( outputFormat ) )
{
cmdLineArgs.addArg( "--format", outputFormat );
}
if ( StringUtils.isNotEmpty( sourceEncoding ) )
{
cmdLineArgs.addArg( "--encoding", sourceEncoding );
}
int returnCode = executeJava();
// Check the return code and print a message
if ( returnCode == 0 )
{
getLog().info( "Cobertura Report generation was successful." );
}
else
{
throw new MojoExecutionException( "Unable to generate Cobertura Report for project." );
}
}
/**
* @return Returns the dataFile.
*/
public File getDataFile()
{
return dataFile;
}
/**
* @return Returns the outputDirectory.
*/
public File getOutputDirectory()
{
return outputDirectory;
}
/**
* @return Returns the outputFormat.
*/
public String getOutputFormat()
{
return outputFormat;
}
/**
* @return Returns the sourceEncoding.
*/
public String getSourceEncoding()
{
return sourceEncoding;
}
/**
* @param dataFile The dataFile to set.
*/
public void setDataFile( File dataFile )
{
this.dataFile = dataFile;
}
/**
* @param outputDirectory The outputDirectory to set.
*/
public void setOutputDirectory( File outputDirectory )
{
this.outputDirectory = outputDirectory;
}
/**
* @param outputFormat The outputFormat to set.
*/
public void setOutputFormat( String outputFormat )
{
this.outputFormat = outputFormat;
}
/**
* @param sourceEncoding The sourceEncoding to set.
*/
public void setSourceEncoding( String sourceEncoding )
{
this.sourceEncoding = sourceEncoding;
}
/**
* Set the list of compile source roots.
* @param compileSourceRoots the source roots.
*/
public void setCompileSourceRoots( List compileSourceRoots )
{
this.compileSourceRoots = Collections.unmodifiableList( compileSourceRoots );
}
}