mirror of https://github.com/apache/maven.git
*** empty log message ***
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@162746 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a9850685f4
commit
ee27e080f8
|
@ -0,0 +1,115 @@
|
|||
package org.apache.maven.plugin;
|
||||
|
||||
import org.codehaus.plexus.compiler.Compiler;
|
||||
import org.codehaus.plexus.compiler.CompilerError;
|
||||
import org.codehaus.plexus.compiler.javac.JavacCompiler;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @goal compile
|
||||
*
|
||||
* @description Compiles application sources
|
||||
*
|
||||
* @parameter
|
||||
* name="sourceDirectory"
|
||||
* type="String"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.build.sourceDirectory"
|
||||
* description=""
|
||||
* @parameter
|
||||
* name="outputDirectory"
|
||||
* type="String"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.build.directory/classes"
|
||||
* description=""
|
||||
* @parameter
|
||||
* name="classpathElements"
|
||||
* type="String[]"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.classpathElements"
|
||||
* description=""
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||
* @version $Id$
|
||||
* @todo use compile source roots and not the pom.build.sourceDirectory so that any
|
||||
* sort of preprocessing and/or source generation can be taken into consideration.
|
||||
*/
|
||||
|
||||
public class CompilerMojo
|
||||
extends AbstractPlugin
|
||||
{
|
||||
private Compiler compiler = new JavacCompiler();
|
||||
|
||||
private boolean debug = false;
|
||||
|
||||
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||
throws Exception
|
||||
{
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
String sourceDirectory = (String) request.getParameter( "sourceDirectory" );
|
||||
|
||||
String outputDirectory = (String) request.getParameter( "outputDirectory" );
|
||||
|
||||
String[] classpathElements = (String[]) request.getParameter( "classpathElements" );
|
||||
|
||||
String compilerId = (String) request.getParameter( "compiler" );
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
if ( ! new File( sourceDirectory ).exists() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
List messages = compiler.compile( classpathElements, new String[]{sourceDirectory}, outputDirectory );
|
||||
|
||||
if ( debug )
|
||||
{
|
||||
for ( int i = 0; i < classpathElements.length; i++ )
|
||||
{
|
||||
String message;
|
||||
|
||||
if ( new File( classpathElements[i] ).exists() )
|
||||
{
|
||||
message = "present in repository.";
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Warning! not present in repository!";
|
||||
}
|
||||
|
||||
System.out.println( "classpathElements[ "+ i +" ] = " + classpathElements[i] + ": " + message );
|
||||
}
|
||||
}
|
||||
|
||||
boolean compilationError = false;
|
||||
|
||||
for ( Iterator i = messages.iterator(); i.hasNext(); )
|
||||
{
|
||||
CompilerError message = (CompilerError) i.next();
|
||||
|
||||
if ( message.isError() )
|
||||
{
|
||||
compilationError = true;
|
||||
}
|
||||
|
||||
System.out.println( message.getMessage() );
|
||||
}
|
||||
|
||||
if ( compilationError )
|
||||
{
|
||||
throw new Exception( "Compilation failure!" );
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package org.apache.maven.plugin;
|
||||
|
||||
import org.codehaus.plexus.compiler.Compiler;
|
||||
import org.codehaus.plexus.compiler.CompilerError;
|
||||
import org.codehaus.plexus.compiler.javac.JavacCompiler;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @goal test:compile
|
||||
*
|
||||
* @description Compiles test sources
|
||||
*
|
||||
* @parameter
|
||||
* name="sourceDirectory"
|
||||
* type="String"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.build.unitTestSourceDirectory"
|
||||
* description=""
|
||||
* @parameter
|
||||
* name="outputDirectory"
|
||||
* type="String"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.build.directory/test-classes"
|
||||
* description=""
|
||||
* @parameter
|
||||
* name="classpathElements"
|
||||
* type="String[]"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project.classpathElements"
|
||||
* description=""
|
||||
*
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||
* @version $Id$
|
||||
* @todo use compile source roots and not the pom.build.sourceDirectory so that any
|
||||
* sort of preprocessing and/or source generation can be taken into consideration.
|
||||
*/
|
||||
|
||||
public class TestCompilerMojo
|
||||
extends CompilerMojo
|
||||
{
|
||||
}
|
Loading…
Reference in New Issue