mirror of https://github.com/apache/maven.git
o maven-plugin-plugin now uses plugin:setup for integrating plugin with maven installation.
plugin:install and plugin:deploy methods are implemented but some change in the core are needed to make them work git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@162843 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a28ad00561
commit
107fd13e0a
|
@ -8,8 +8,18 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>maven-plugin-plugin</groupId>
|
<groupId>maven-plugin-plugin</groupId>
|
||||||
<artifactId>maven-plugin-plugin</artifactId>
|
<artifactId>maven-plugin-plugin</artifactId>
|
||||||
|
<type>plugin</type>
|
||||||
<name>Maven</name>
|
<name>Maven</name>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
<inceptionYear>2001</inceptionYear>
|
<inceptionYear>2001</inceptionYear>
|
||||||
<package>org.apache.maven</package>
|
<package>org.apache.maven.plugin.plugin</package>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>maven</groupId>
|
||||||
|
<artifactId>maven-core</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.apache.maven.plugin.plugin;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public abstract class AbstractGeneratorMojo
|
||||||
|
extends AbstractPlugin
|
||||||
|
{
|
||||||
|
protected abstract void generate( String sourceDirectory, String outputDirectory, String pom )
|
||||||
|
throws Exception;
|
||||||
|
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
String sourceDirectory = (String) request.getParameter( "sourceDirectory" );
|
||||||
|
|
||||||
|
String outputDirectory = (String) request.getParameter( "outputDirectory" );
|
||||||
|
|
||||||
|
String pom = (String) request.getParameter( "pom" );
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
generate( sourceDirectory, outputDirectory, pom );
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,8 @@ import org.apache.maven.plugin.AbstractPlugin;
|
||||||
import org.apache.maven.plugin.PluginExecutionRequest;
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
import org.apache.maven.plugin.PluginExecutionResponse;
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
|
@ -11,26 +13,27 @@ import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
public abstract class AbstractPluginMojo
|
public abstract class AbstractPluginMojo
|
||||||
extends AbstractPlugin
|
extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected abstract void generate( String sourceDirectory, String outputDirectory, String pom )
|
|
||||||
throws Exception;
|
|
||||||
|
|
||||||
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
protected File getJarFile( PluginExecutionRequest request )
|
||||||
throws Exception
|
|
||||||
{
|
{
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
String sourceDirectory = (String) request.getParameter( "sourceDirectory" );
|
|
||||||
|
|
||||||
String outputDirectory = (String) request.getParameter( "outputDirectory" );
|
String outputDirectory = (String) request.getParameter( "outputDirectory" );
|
||||||
|
|
||||||
String pom = (String) request.getParameter( "pom" );
|
String jarName = (String) request.getParameter( "jarName" );
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
generate( sourceDirectory, outputDirectory, pom );
|
File jarFile = new File( new File( outputDirectory ), jarName + ".jar" );
|
||||||
|
|
||||||
|
return jarFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ import org.apache.maven.plugin.generator.BeanGenerator;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class BeanGeneratorMojo
|
public class BeanGeneratorMojo
|
||||||
extends AbstractPluginMojo
|
extends AbstractGeneratorMojo
|
||||||
{
|
{
|
||||||
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -33,7 +33,7 @@ import org.apache.maven.plugin.generator.PluginDescriptorGenerator;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class DescriptorGenerator
|
public class DescriptorGenerator
|
||||||
extends AbstractPluginMojo
|
extends AbstractGeneratorMojo
|
||||||
{
|
{
|
||||||
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.codehaus.plexus.util.FileUtils;
|
||||||
* @description Installs a plugin into the maven installation.
|
* @description Installs a plugin into the maven installation.
|
||||||
*
|
*
|
||||||
* @prereq plugin:descriptor
|
* @prereq plugin:descriptor
|
||||||
|
*
|
||||||
* @prereq jar:jar
|
* @prereq jar:jar
|
||||||
*
|
*
|
||||||
* @parameter
|
* @parameter
|
||||||
|
|
|
@ -33,7 +33,7 @@ import org.apache.maven.plugin.generator.jelly.JellyHarnessGenerator;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class JellyGeneratorMojo
|
public class JellyGeneratorMojo
|
||||||
extends AbstractPluginMojo
|
extends AbstractGeneratorMojo
|
||||||
{
|
{
|
||||||
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
protected void generate( String sourceDirectory, String outputDirectory, String pom )
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
package org.apache.maven.plugin.plugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
import org.apache.maven.project.MavenProject;
|
||||||
|
import org.apache.maven.artifact.installer.ArtifactInstaller;
|
||||||
|
import org.apache.maven.artifact.deployer.ArtifactDeployer;
|
||||||
|
|
||||||
|
import org.codehaus.plexus.util.FileUtils;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @goal deploy
|
||||||
|
*
|
||||||
|
* @description Installs a plugin into local repository
|
||||||
|
*
|
||||||
|
* @prereq plugin:plugin
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="outputDirectory"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.directory"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="jarName"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.final.name"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="project"
|
||||||
|
* type="org.apache.maven.project.MavenProject"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="deployer"
|
||||||
|
* type="org.apache.maven.artifact.deployer.ArtifactDeployer"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#component.org.apache.maven.artifact.deployer.ArtifactDeployer"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
|
||||||
|
* @author <a href="mailto:michal@codehaus.org">Michal Maczka</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginDeployMojo
|
||||||
|
extends AbstractPluginMojo
|
||||||
|
{
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
File jarFile = getJarFile( request );
|
||||||
|
|
||||||
|
MavenProject project = (MavenProject) request.getParameter( "project" );
|
||||||
|
|
||||||
|
ArtifactDeployer artifactDeployer = ( ArtifactDeployer ) request.getParameter( "deployer" );
|
||||||
|
|
||||||
|
artifactDeployer.deploy( jarFile, "plugin", project );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
package org.apache.maven.plugin.plugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
import org.apache.maven.project.MavenProject;
|
||||||
|
import org.apache.maven.artifact.installer.ArtifactInstaller;
|
||||||
|
|
||||||
|
import org.codehaus.plexus.util.FileUtils;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @goal install
|
||||||
|
*
|
||||||
|
* @description Installs a plugin into local repository
|
||||||
|
*
|
||||||
|
* @prereq plugin:plugin
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="outputDirectory"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.directory"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="jarName"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.final.name"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="project"
|
||||||
|
* type="org.apache.maven.project.MavenProject"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="installer"
|
||||||
|
* type="org.apache.maven.artifact.installer.ArtifactInstaller"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#component.org.apache.maven.artifact.installer.ArtifactInstaller"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
|
||||||
|
* @author <a href="mailto:michal@codehaus.org">Michal Maczka</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginInstallMojo
|
||||||
|
extends AbstractPluginMojo
|
||||||
|
{
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
File jarFile = getJarFile( request );
|
||||||
|
|
||||||
|
MavenProject project = (MavenProject) request.getParameter( "project" );
|
||||||
|
|
||||||
|
ArtifactInstaller artifactInstaller = (ArtifactInstaller) request.getParameter( "installer" );
|
||||||
|
|
||||||
|
System.out.println( "artifactInstaller: " + artifactInstaller );
|
||||||
|
|
||||||
|
artifactInstaller.install( jarFile, "plugin", project );
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package org.apache.maven.plugin.plugin;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @goal plugin
|
||||||
|
*
|
||||||
|
* @description Creates a plugin jar
|
||||||
|
*
|
||||||
|
* @prereq plugin:descriptor
|
||||||
|
*
|
||||||
|
* @prereq jar:jar
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:michal@codehaus.org">Michal Maczka</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginMojo extends AbstractPlugin
|
||||||
|
{
|
||||||
|
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response ) throws Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
package org.apache.maven.plugin.plugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import org.apache.maven.plugin.AbstractPlugin;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||||
|
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||||
|
|
||||||
|
import org.codehaus.plexus.util.FileUtils;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @goal setup
|
||||||
|
*
|
||||||
|
* @description Installs a plugin into the maven installation.
|
||||||
|
*
|
||||||
|
* @prereq plugin:plugin
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="outputDirectory"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#project.build.directory"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="jarName"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.final.name"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @parameter
|
||||||
|
* name="pluginHome"
|
||||||
|
* type="String"
|
||||||
|
* required="true"
|
||||||
|
* validator=""
|
||||||
|
* expression="#maven.plugin.home"
|
||||||
|
* description=""
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
|
||||||
|
* @author <a href="mailto:michal@codehaus.org">Michal Maczka</a>
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
public class PluginSetupMojo
|
||||||
|
extends AbstractPluginMojo
|
||||||
|
{
|
||||||
|
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
String pluginHomeName = (String) request.getParameter( "pluginHome" );
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
File jarFile = getJarFile( request );
|
||||||
|
|
||||||
|
File pluginHome = getPluginHome( pluginHomeName );
|
||||||
|
|
||||||
|
System.out.println( "Installing " + jarFile + " in " + pluginHome );
|
||||||
|
|
||||||
|
FileUtils.copyFileToDirectory( jarFile, pluginHome );
|
||||||
|
}
|
||||||
|
|
||||||
|
private File getPluginHome( String pluginHomeName )
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
File pluginHome;
|
||||||
|
|
||||||
|
if ( pluginHomeName == null ||
|
||||||
|
pluginHomeName.trim().length() == 0 ||
|
||||||
|
pluginHomeName.equals( "maven.plugin.home" ) )
|
||||||
|
{
|
||||||
|
String mavenHomeName = System.getProperty( "maven.home" );
|
||||||
|
|
||||||
|
if ( mavenHomeName == null )
|
||||||
|
{
|
||||||
|
String userHomeName = System.getProperty( "user.home" );
|
||||||
|
|
||||||
|
System.out.println( "userHomeName: " + userHomeName );
|
||||||
|
|
||||||
|
File mavenHome = new File( userHomeName, ".m2" );
|
||||||
|
|
||||||
|
if ( !mavenHome.exists() )
|
||||||
|
{
|
||||||
|
mavenHome = new File( userHomeName, "m2" );
|
||||||
|
|
||||||
|
if ( !mavenHome.exists() )
|
||||||
|
{
|
||||||
|
pluginHome = new File( mavenHome, "plugins" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception( "Cannot find the maven plugins directory." );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pluginHome = new File( mavenHome, "plugins" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pluginHome = new File( mavenHomeName, "plugins" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pluginHome = new File( pluginHomeName );
|
||||||
|
}
|
||||||
|
return pluginHome;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue