mirror of https://github.com/apache/maven.git
ant plugin imported
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@169833 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d7c0855732
commit
0c5ec0305c
|
@ -0,0 +1,19 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>maven-plugin-parent</artifactId>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>maven-ant-plugin</artifactId>
|
||||
<version>2.0-alpha-1-SNAPSHOT</version>
|
||||
<packaging>maven-plugin</packaging>
|
||||
<name>Maven Ant Plugin</name>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-project</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,529 @@
|
|||
package org.apache.maven.plugin.ant;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.model.Repository;
|
||||
import org.apache.maven.model.Resource;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
|
||||
import org.codehaus.plexus.util.xml.XMLWriter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class AntBuildWriter
|
||||
{
|
||||
private MavenProject project;
|
||||
|
||||
private File localRepository;
|
||||
|
||||
public AntBuildWriter( MavenProject project, File localRepository )
|
||||
{
|
||||
this.project = project;
|
||||
this.localRepository = localRepository;
|
||||
}
|
||||
|
||||
public void write()
|
||||
throws AntPluginException
|
||||
{
|
||||
writeBuildXml();
|
||||
|
||||
System.out.println(
|
||||
"Wrote Ant project for " + project.getArtifactId() + " to " + project.getBasedir().getAbsolutePath() );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// build.xml
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
protected void writeBuildXml()
|
||||
throws AntPluginException
|
||||
{
|
||||
FileWriter w;
|
||||
|
||||
try
|
||||
{
|
||||
// TODO: parameter
|
||||
w = new FileWriter( new File( project.getBasedir(), "build.xml" ) );
|
||||
}
|
||||
catch ( IOException ex )
|
||||
{
|
||||
throw new AntPluginException( "Exception while opening file.", ex );
|
||||
}
|
||||
|
||||
XMLWriter writer = new PrettyPrintXMLWriter( w );
|
||||
|
||||
writer.startElement( "project" );
|
||||
writer.addAttribute( "name", project.getArtifactId() );
|
||||
writer.addAttribute( "default", "jar" );
|
||||
writer.addAttribute( "basedir", "." );
|
||||
|
||||
writeProperties( writer );
|
||||
|
||||
writeBuildPathDefinition( writer );
|
||||
|
||||
writeCleanTarget( writer );
|
||||
List compileSourceRoots = removeEmptyCompileSourceRoots( project.getCompileSourceRoots() );
|
||||
writeCompileTarget( writer, compileSourceRoots );
|
||||
|
||||
// TODO: what if type is not JAR?
|
||||
writeJarTarget( writer );
|
||||
|
||||
List testCompileSourceRoots = removeEmptyCompileSourceRoots( project.getTestCompileSourceRoots() );
|
||||
writeCompileTestsTarget( writer, testCompileSourceRoots );
|
||||
writeTestTargets( writer, testCompileSourceRoots );
|
||||
|
||||
writeGetDepsTarget( writer );
|
||||
|
||||
writer.endElement(); // project
|
||||
|
||||
close( w );
|
||||
}
|
||||
|
||||
private void writeCompileTestsTarget( XMLWriter writer, List testCompileSourceRoots )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "compile-tests" );
|
||||
writer.addAttribute( "depends", "junit-present, compile" );
|
||||
writer.addAttribute( "description", "Compile the test code" );
|
||||
writer.addAttribute( "if", "junit.present" );
|
||||
|
||||
writeCompileTasks( writer, project.getBasedir(), "${maven.test.output}", testCompileSourceRoots,
|
||||
project.getBuild().getTestResources(), "${maven.build.output}" );
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private void writeTestTargets( XMLWriter writer, List testCompileSourceRoots )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "test" );
|
||||
writer.addAttribute( "depends", "junit-present, compile-tests" );
|
||||
writer.addAttribute( "if", "junit.present" );
|
||||
writer.addAttribute( "description", "Run the test cases" );
|
||||
|
||||
if ( !testCompileSourceRoots.isEmpty() )
|
||||
{
|
||||
writer.startElement( "mkdir" );
|
||||
writer.addAttribute( "dir", "${maven.test.reports}" );
|
||||
writer.endElement(); //mkdir
|
||||
|
||||
writer.startElement( "junit" );
|
||||
writer.addAttribute( "printSummary", "yes" );
|
||||
writer.addAttribute( "haltonerror", "true" );
|
||||
writer.addAttribute( "haltonfailure", "true" );
|
||||
writer.addAttribute( "fork", "true" );
|
||||
writer.addAttribute( "dir", "." );
|
||||
|
||||
writer.startElement( "sysproperty" );
|
||||
writer.addAttribute( "key", "basedir" );
|
||||
writer.addAttribute( "value", "." );
|
||||
writer.endElement(); // sysproperty
|
||||
|
||||
writer.startElement( "formatter" );
|
||||
writer.addAttribute( "type", "xml" );
|
||||
writer.endElement(); // formatter
|
||||
|
||||
writer.startElement( "formatter" );
|
||||
writer.addAttribute( "type", "plain" );
|
||||
writer.addAttribute( "usefile", "false" );
|
||||
writer.endElement(); // formatter
|
||||
|
||||
writer.startElement( "classpath" );
|
||||
writer.startElement( "path" );
|
||||
writer.addAttribute( "refid", "build.classpath" );
|
||||
writer.endElement(); // path
|
||||
writer.startElement( "pathelement" );
|
||||
writer.addAttribute( "location", "${maven.build.output}" );
|
||||
writer.endElement(); // pathelement
|
||||
writer.startElement( "pathelement" );
|
||||
writer.addAttribute( "location", "${maven.test.output}" );
|
||||
writer.endElement(); // pathelement
|
||||
writer.endElement(); // classpath
|
||||
|
||||
writer.startElement( "batchtest" );
|
||||
for ( Iterator i = testCompileSourceRoots.iterator(); i.hasNext(); )
|
||||
{
|
||||
writer.startElement( "fileset" );
|
||||
String testSrcDir = (String) i.next();
|
||||
writer.addAttribute( "dir", toRelative( project.getBasedir(), testSrcDir ) );
|
||||
/* TODO: need to get these from the test plugin somehow?
|
||||
UnitTest unitTest = project.getBuild().getUnitTest();
|
||||
writeIncludesExcludes( writer, unitTest.getIncludes(), unitTest.getExcludes() );
|
||||
// TODO: m1 allows additional test exclusions via maven.ant.excludeTests
|
||||
*/
|
||||
writeIncludesExcludes( writer, Collections.singletonList( "**/*Test.java" ),
|
||||
Collections.singletonList( "**/*Abstract*Test.java" ) );
|
||||
writer.endElement(); // fileset
|
||||
}
|
||||
writer.endElement(); // batchtest
|
||||
|
||||
writer.endElement(); // junit
|
||||
}
|
||||
writer.endElement(); // target
|
||||
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "test-junit-present" );
|
||||
|
||||
writer.startElement( "available" );
|
||||
writer.addAttribute( "classname", "junit.framework.Test" );
|
||||
writer.addAttribute( "property", "junit.present" );
|
||||
writer.endElement(); // available
|
||||
|
||||
writer.endElement(); // target
|
||||
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "junit-present" );
|
||||
writer.addAttribute( "depends", "test-junit-present" );
|
||||
writer.addAttribute( "unless", "junit.present" );
|
||||
|
||||
writer.startElement( "echo" );
|
||||
writer.writeText( "================================= WARNING ================================" );
|
||||
writer.endElement(); // echo
|
||||
|
||||
writer.startElement( "echo" );
|
||||
writer.writeText( " Junit isn't present in your $ANT_HOME/lib directory. Tests not executed. " );
|
||||
writer.endElement(); // echo
|
||||
|
||||
writer.startElement( "echo" );
|
||||
writer.writeText( "==========================================================================" );
|
||||
writer.endElement(); // echo
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private void writeJarTarget( XMLWriter writer )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "jar" );
|
||||
writer.addAttribute( "depends", "compile,test" );
|
||||
writer.addAttribute( "description", "Clean the JAR" );
|
||||
|
||||
writer.startElement( "jar" );
|
||||
writer.addAttribute( "jarfile", "${maven.build.directory}/${maven.build.final.name}.jar" );
|
||||
writer.addAttribute( "basedir", "${maven.build.output}" );
|
||||
writer.addAttribute( "excludes", "**/package.html" );
|
||||
writer.endElement(); // jar
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private void writeCleanTarget( XMLWriter writer )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "clean" );
|
||||
writer.addAttribute( "description", "Clean the output directory" );
|
||||
|
||||
writer.startElement( "delete" );
|
||||
writer.addAttribute( "dir", "${maven.build.directory}" );
|
||||
writer.endElement(); // delete
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private void writeCompileTarget( XMLWriter writer, List compileSourceRoots )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "compile" );
|
||||
writer.addAttribute( "depends", "get-deps" );
|
||||
writer.addAttribute( "description", "Compile the code" );
|
||||
|
||||
writeCompileTasks( writer, project.getBasedir(), "${maven.build.output}", compileSourceRoots,
|
||||
project.getBuild().getResources(), null );
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private static void writeCompileTasks( XMLWriter writer, File basedir, String outputDirectory,
|
||||
List compileSourceRoots, List resources, String additionalClassesDirectory )
|
||||
{
|
||||
writer.startElement( "mkdir" );
|
||||
writer.addAttribute( "dir", outputDirectory );
|
||||
writer.endElement(); // mkdir
|
||||
|
||||
if ( !compileSourceRoots.isEmpty() )
|
||||
{
|
||||
writer.startElement( "javac" );
|
||||
writer.addAttribute( "destdir", outputDirectory );
|
||||
writer.addAttribute( "excludes", "**/package.html" );
|
||||
writer.addAttribute( "debug", "true" ); // TODO: use compiler setting
|
||||
writer.addAttribute( "deprecation", "true" ); // TODO: use compiler setting
|
||||
writer.addAttribute( "optimize", "false" ); // TODO: use compiler setting
|
||||
|
||||
for ( Iterator i = compileSourceRoots.iterator(); i.hasNext(); )
|
||||
{
|
||||
String srcDir = (String) i.next();
|
||||
|
||||
writer.startElement( "src" );
|
||||
writer.startElement( "pathelement" );
|
||||
writer.addAttribute( "location", toRelative( basedir, srcDir ) );
|
||||
writer.endElement(); // pathelement
|
||||
writer.endElement(); // src
|
||||
}
|
||||
|
||||
if ( additionalClassesDirectory == null )
|
||||
{
|
||||
writer.startElement( "classpath" );
|
||||
writer.addAttribute( "refid", "build.classpath" );
|
||||
writer.endElement(); // classpath
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.startElement( "classpath" );
|
||||
writer.startElement( "path" );
|
||||
writer.addAttribute( "refid", "build.classpath" );
|
||||
writer.endElement(); // path
|
||||
writer.startElement( "pathelement" );
|
||||
writer.addAttribute( "location", additionalClassesDirectory );
|
||||
writer.endElement(); // pathelement
|
||||
writer.endElement(); // classpath
|
||||
|
||||
}
|
||||
|
||||
writer.endElement(); // javac
|
||||
}
|
||||
|
||||
for ( Iterator i = resources.iterator(); i.hasNext(); )
|
||||
{
|
||||
Resource resource = (Resource) i.next();
|
||||
|
||||
if ( new File( resource.getDirectory() ).exists() )
|
||||
{
|
||||
String outputDir = outputDirectory;
|
||||
if ( resource.getTargetPath() != null && resource.getTargetPath().length() > 0 )
|
||||
{
|
||||
outputDir = outputDir + "/" + resource.getTargetPath();
|
||||
|
||||
writer.startElement( "mkdir" );
|
||||
writer.addAttribute( "dir", outputDir );
|
||||
writer.endElement(); // mkdir
|
||||
}
|
||||
|
||||
writer.startElement( "copy" );
|
||||
writer.addAttribute( "todir", outputDir );
|
||||
|
||||
writer.startElement( "fileset" );
|
||||
writer.addAttribute( "dir", toRelative( basedir, resource.getDirectory() ) );
|
||||
|
||||
writeIncludesExcludes( writer, resource.getIncludes(), resource.getExcludes() );
|
||||
|
||||
writer.endElement(); // fileset
|
||||
|
||||
writer.endElement(); // copy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static List removeEmptyCompileSourceRoots( List compileSourceRoots )
|
||||
{
|
||||
List newCompileSourceRootsList = new ArrayList();
|
||||
if ( compileSourceRoots != null )
|
||||
{
|
||||
// copy as I may be modifying it
|
||||
for ( Iterator i = compileSourceRoots.iterator(); i.hasNext(); )
|
||||
{
|
||||
String srcDir = (String) i.next();
|
||||
if ( new File( srcDir ).exists() )
|
||||
{
|
||||
newCompileSourceRootsList.add( srcDir );
|
||||
}
|
||||
}
|
||||
}
|
||||
return newCompileSourceRootsList;
|
||||
}
|
||||
|
||||
private static void writeIncludesExcludes( XMLWriter writer, List includes, List excludes )
|
||||
{
|
||||
for ( Iterator i = includes.iterator(); i.hasNext(); )
|
||||
{
|
||||
String include = (String) i.next();
|
||||
writer.startElement( "include" );
|
||||
writer.addAttribute( "name", include );
|
||||
writer.endElement(); // include
|
||||
}
|
||||
for ( Iterator i = excludes.iterator(); i.hasNext(); )
|
||||
{
|
||||
String exclude = (String) i.next();
|
||||
writer.startElement( "exclude" );
|
||||
writer.addAttribute( "name", exclude );
|
||||
writer.endElement(); // exclude
|
||||
}
|
||||
}
|
||||
|
||||
private void writeGetDepsTarget( XMLWriter writer )
|
||||
{
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "test-offline" );
|
||||
|
||||
writer.startElement( "condition" );
|
||||
writer.addAttribute( "property", "maven.mode.offline" );
|
||||
writer.startElement( "equals" );
|
||||
writer.addAttribute( "arg1", "${build.sysclasspath}" );
|
||||
writer.addAttribute( "arg2", "only" );
|
||||
writer.endElement(); // equals
|
||||
writer.endElement(); // condition
|
||||
|
||||
writer.endElement(); // target
|
||||
writer.startElement( "target" );
|
||||
writer.addAttribute( "name", "get-deps" );
|
||||
writer.addAttribute( "depends", "test-offline" );
|
||||
writer.addAttribute( "description", "Download all dependencies" );
|
||||
writer.addAttribute( "unless", "maven.mode.offline" ); // TODO: check, and differs from m1
|
||||
|
||||
writer.startElement( "mkdir" );
|
||||
writer.addAttribute( "dir", "${maven.repo.local}" );
|
||||
writer.endElement(); // mkdir
|
||||
|
||||
// TODO: proxy - probably better to use wagon!
|
||||
|
||||
for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
|
||||
{
|
||||
Artifact artifact = (Artifact) i.next();
|
||||
|
||||
// TODO: should the artifacthandler be used instead?
|
||||
String path = toRelative( localRepository, artifact.getFile().getPath() );
|
||||
|
||||
for ( Iterator j = project.getRepositories().iterator(); j.hasNext(); )
|
||||
{
|
||||
Repository repository = (Repository) j.next();
|
||||
|
||||
writer.startElement( "get" );
|
||||
writer.addAttribute( "src", repository.getUrl() + "/" + path );
|
||||
writer.addAttribute( "dest", "${maven.repo.local}/" + path );
|
||||
writer.addAttribute( "usetimestamp", "true" );
|
||||
writer.addAttribute( "ignoreerrors", "true" );
|
||||
writer.endElement(); // get
|
||||
}
|
||||
}
|
||||
|
||||
writer.endElement(); // target
|
||||
}
|
||||
|
||||
private void writeBuildPathDefinition( XMLWriter writer )
|
||||
{
|
||||
writer.startElement( "path" );
|
||||
writer.addAttribute( "id", "build.classpath" );
|
||||
writer.startElement( "fileset" );
|
||||
writer.addAttribute( "dir", "${maven.repo.local}" );
|
||||
for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
|
||||
{
|
||||
Artifact artifact = (Artifact) i.next();
|
||||
writer.startElement( "include" );
|
||||
writer.addAttribute( "name", toRelative( localRepository, artifact.getFile().getPath() ) );
|
||||
writer.endElement(); // include
|
||||
}
|
||||
writer.endElement(); // fileset
|
||||
writer.endElement(); // path
|
||||
}
|
||||
|
||||
private void writeProperties( XMLWriter writer )
|
||||
{
|
||||
// TODO: optional in m1
|
||||
// TODO: USD properties
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "file", "${user.home}/.m2/maven.properties" );
|
||||
writer.endElement(); // property
|
||||
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.build.output" );
|
||||
writer.addAttribute( "value", toRelative( project.getBasedir(), project.getBuild().getOutputDirectory() ) );
|
||||
writer.endElement(); // property
|
||||
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.build.directory" );
|
||||
writer.addAttribute( "value", toRelative( project.getBasedir(), project.getBuild().getDirectory() ) );
|
||||
writer.endElement(); // property
|
||||
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.build.final.name" );
|
||||
writer.addAttribute( "value", project.getBuild().getFinalName() );
|
||||
writer.endElement(); // property
|
||||
|
||||
// TODO: property?
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.test.reports" );
|
||||
writer.addAttribute( "value", "${maven.build.directory}/test-reports" );
|
||||
writer.endElement(); // property
|
||||
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.test.output" );
|
||||
writer.addAttribute( "value", toRelative( project.getBasedir(), project.getBuild().getTestOutputDirectory() ) );
|
||||
writer.endElement(); // property
|
||||
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.repo.local" );
|
||||
writer.addAttribute( "value", "${user.home}/.m2/repository" );
|
||||
writer.endElement(); // property
|
||||
|
||||
/* TODO: offline setting
|
||||
writer.startElement( "property" );
|
||||
writer.addAttribute( "name", "maven.mode.offline" );
|
||||
writer.addAttribute( "value", project.getBuild().getOutput() );
|
||||
writer.endElement(); // property
|
||||
*/
|
||||
}
|
||||
|
||||
private void close( Writer closeable )
|
||||
{
|
||||
if ( closeable == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
closeable.close();
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
// ignore
|
||||
// TODO: warn
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: move to plexus-utils or use something appropriate from there (eclipse plugin too)
|
||||
private static String toRelative( File basedir, String absolutePath )
|
||||
{
|
||||
String relative;
|
||||
|
||||
absolutePath = absolutePath.replace( '\\', '/' );
|
||||
String basedirPath = basedir.getAbsolutePath().replace( '\\', '/' );
|
||||
|
||||
if ( absolutePath.startsWith( basedirPath ) )
|
||||
{
|
||||
relative = absolutePath.substring( basedirPath.length() + 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
relative = absolutePath;
|
||||
}
|
||||
|
||||
return relative;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package org.apache.maven.plugin.ant;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* A Maven2 plugin to generate an Ant build file.
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
* @goal ant
|
||||
* @requiresDependencyResolution
|
||||
* @todo change this to use the artifact ant tasks instead of :get
|
||||
*/
|
||||
public class AntMojo
|
||||
extends AbstractMojo
|
||||
{
|
||||
/**
|
||||
* The project to create a build for.
|
||||
* @parameter expression="${project}"
|
||||
* @required
|
||||
*/
|
||||
private MavenProject project;
|
||||
|
||||
/**
|
||||
* The location of the local repository.
|
||||
* @parameter expression="${localRepository}"
|
||||
* @required
|
||||
*/
|
||||
private ArtifactRepository localRepository;
|
||||
|
||||
public void execute()
|
||||
throws MojoExecutionException
|
||||
{
|
||||
// TODO: read back previous
|
||||
|
||||
AntBuildWriter antBuildWriter = new AntBuildWriter( project, new File( localRepository.getBasedir() ) );
|
||||
|
||||
try
|
||||
{
|
||||
antBuildWriter.write();
|
||||
}
|
||||
catch ( AntPluginException e )
|
||||
{
|
||||
throw new MojoExecutionException( "Error building Ant script", e );
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package org.apache.maven.plugin.ant;
|
||||
|
||||
/*
|
||||
* Copyright 2001-2005 The Apache Software Foundation.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class AntPluginException extends Exception
|
||||
{
|
||||
public AntPluginException( String msg )
|
||||
{
|
||||
super( msg );
|
||||
}
|
||||
|
||||
public AntPluginException( String msg, Throwable cause )
|
||||
{
|
||||
super( msg, cause );
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue