You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Wim Deblauwe <wi...@gmail.com> on 2005/11/22 15:46:36 UTC
[m2] run a bat file from within a custom plugin
Hi,
I would like to run a bat file from my plugin. I know that this will make my
plugin very unportable to other platforms, but I only need to run on
windows. What would be the best way to do this? Since running a bat file
from within a jar is not supported, I guess the best way is to extract that
bat file from the plugin jar to some temp directory and run it from there.
Any other ideas?
regards,
Wim
Re: [m2] run a bat file from within a custom plugin
Posted by Chris Berry <ch...@gmail.com>.
Hi Wim,
I had to do something like this as well w/ the antrun Plugin. Ant expects to
find a real File for build.xml, and won't extract it from JAR. So I simply
used Ant to do all the work. You can ignore the part where I build the <ant>
task. The pertinent part is shown below. BTW. you could even use Ant to
<exec> to run your BAT file. It has all the features you'd eventually
need...
//-----------------------------
protected void executeTasks( Target target, MavenProject mproject, String
msgLevel )
throws MojoExecutionException
{
verifySetup();
String antFileName = getAntFileName();
String antTargetName = getAntTargetName();
//-------------------------
// Create the <unzip> Task
//-------------------------
Task unzipTask = createUnzipTask( antFileName );
addTask( target, unzipTask );
//-------------------------
// Create the <ant> Task
//-------------------------
Task antTask = createAntTask( antFileName, antTargetName );
addTask( target, antTask );
//-------------------------
// Set Ant project properties
//-------------------------
setCommonAntProperties( target );
setAntProperties( target );
//-------------------------
// Execute the Tasks
//-------------------------
getLog().info( "*** target= " + target.getTasks().length );
super.executeTasks( target, mproject, msgLevel );
}
//-----------------------------
private Task createUnzipTask( String antFileName )
{
String pluginGroupId = getPluginGroupId();
String pluginArtifactId = getPluginArtifactId();
String pluginVersion = getPluginVersion() ;
ArtifactRepository localRepository = getLocalRepository();
String targetDirectory = getTargetDirectory();
getLog().info( "pluginGroupId= " + pluginGroupId );
getLog().info( "pluginArtifactId= " + pluginArtifactId );
getLog().info( "pluginVersion= " + pluginVersion );
getLog().info( "localRepository= " + localRepository.getUrl() );
getLog().info( "targetDirectory = " + targetDirectory );
// First, get build the source JAR file
// convert groupId to path (. ==> /)
// FIXME: this is probably possible in maven somewhere??
String groupIdPath = pluginGroupId.replace( '.', '/' );
String slocalRepo = localRepository.getUrl();
// Strip off the file:/ -- there's probably a better way to do this
// but converting to a File and pulling the Path was giving incorrect
results (on windoze)
slocalRepo = slocalRepo.replaceAll( "file://", "" );
getLog().info( "\n*** slocalRepo= " + slocalRepo );
// build full path to plugin jar -- src="${plugin.artifact}
// FIXME: this is probably possible in maven somewhere??
String src = slocalRepo + "/" + groupIdPath + "/" + pluginArtifactId + "/"
+
pluginVersion + "/" + pluginArtifactId + "-" + pluginVersion + ".jar" ;
getLog().info( "*** src= " + src );
File srcFile = new File( src );
getLog().info( "*** srcFile= " + srcFile );
//..............................
// Get the destination dir -- dest="${targetdir}"
File destFile = new File( targetDirectory );
getLog().info( "\n==========> targetDirectory= " + targetDirectory );
getLog().info( "\n==========> destFile= " + targetDirectory );
//..............................
// build the <unzip> Task
//
// <unzip src="${plugin.artifact}"
// dest="${targetdir}">
// <patternset>
// <include name="ant/axis-build.xml"/>
// </patternset>
// </unzip>
Expand unzipTask = new Expand();
unzipTask.setTaskName( "unzip" );
unzipTask.setSrc( srcFile );
unzipTask.setDest( destFile );
unzipTask.setOverwrite( true );
PatternSet pset = new PatternSet();
pset.setIncludes( antFileName );
unzipTask.addPatternset( pset );
return unzipTask;
}
On 11/22/05, Emmanuel Venisse <em...@venisse.net> wrote:
>
> you need to extract your file first (perhaps with plexus-archiver) and
> then run your script with
> Commandline
>
>
> Wim Deblauwe a écrit :
> > What do you mean? I see the use of the Commanline class, but it calls an
> > executable that is on the PATH. I'm talking about running a bat file
> that is
> > delivered with my plugin (in the plugin jar).
> >
> >
> > 2005/11/22, Emmanuel Venisse <em...@venisse.net>:
> >
> >>look at release:perform goal.
> >>
> >>Emmanuel
> >>
> >>Wim Deblauwe a écrit :
> >>
> >>>Hi,
> >>>
> >>>I would like to run a bat file from my plugin. I know that this will
> >>
> >>make my
> >>
> >>>plugin very unportable to other platforms, but I only need to run on
> >>>windows. What would be the best way to do this? Since running a bat
> file
> >>>from within a jar is not supported, I guess the best way is to extract
> >>
> >>that
> >>
> >>>bat file from the plugin jar to some temp directory and run it from
> >>
> >>there.
> >>
> >>>Any other ideas?
> >>>
> >>>regards,
> >>>
> >>>Wim
> >>>
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>For additional commands, e-mail: users-help@maven.apache.org
> >>
> >>
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
Re: [m2] run a bat file from within a custom plugin
Posted by Emmanuel Venisse <em...@venisse.net>.
you need to extract your file first (perhaps with plexus-archiver) and then run your script with
Commandline
Wim Deblauwe a écrit :
> What do you mean? I see the use of the Commanline class, but it calls an
> executable that is on the PATH. I'm talking about running a bat file that is
> delivered with my plugin (in the plugin jar).
>
>
> 2005/11/22, Emmanuel Venisse <em...@venisse.net>:
>
>>look at release:perform goal.
>>
>>Emmanuel
>>
>>Wim Deblauwe a écrit :
>>
>>>Hi,
>>>
>>>I would like to run a bat file from my plugin. I know that this will
>>
>>make my
>>
>>>plugin very unportable to other platforms, but I only need to run on
>>>windows. What would be the best way to do this? Since running a bat file
>>>from within a jar is not supported, I guess the best way is to extract
>>
>>that
>>
>>>bat file from the plugin jar to some temp directory and run it from
>>
>>there.
>>
>>>Any other ideas?
>>>
>>>regards,
>>>
>>>Wim
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [m2] run a bat file from within a custom plugin
Posted by Wim Deblauwe <wi...@gmail.com>.
What do you mean? I see the use of the Commanline class, but it calls an
executable that is on the PATH. I'm talking about running a bat file that is
delivered with my plugin (in the plugin jar).
2005/11/22, Emmanuel Venisse <em...@venisse.net>:
>
> look at release:perform goal.
>
> Emmanuel
>
> Wim Deblauwe a écrit :
> > Hi,
> >
> > I would like to run a bat file from my plugin. I know that this will
> make my
> > plugin very unportable to other platforms, but I only need to run on
> > windows. What would be the best way to do this? Since running a bat file
> > from within a jar is not supported, I guess the best way is to extract
> that
> > bat file from the plugin jar to some temp directory and run it from
> there.
> > Any other ideas?
> >
> > regards,
> >
> > Wim
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
Re: [m2] run a bat file from within a custom plugin
Posted by Emmanuel Venisse <em...@venisse.net>.
look at release:perform goal.
Emmanuel
Wim Deblauwe a écrit :
> Hi,
>
> I would like to run a bat file from my plugin. I know that this will make my
> plugin very unportable to other platforms, but I only need to run on
> windows. What would be the best way to do this? Since running a bat file
> from within a jar is not supported, I guess the best way is to extract that
> bat file from the plugin jar to some temp directory and run it from there.
> Any other ideas?
>
> regards,
>
> Wim
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org