Thanks for the suggestions guys.
Don't really want to bring in the might of plexus/commons libraries
if I can help it for this one liner
so what I'm doing is just calling Main directly - don't know why I
didn't think
of it before:
com.sun.tools.xjc.Driver.main(args);
I'm way off topic now though.
On 4 Oct 2005, at 11:20, Wendell Beckwith wrote:
Another thing to do especially since some devs keep steering people to
use commons-exec and then other devs say not to use it is to use the
command line execution functionality in plexus-utils.
1. Add the following dependency to your pom:
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.0.3</version>
</dependency>
2. Createa utility method like the following:
/**
* @see org.apache.maven.plugin.Mojo#execute()
*/
public static int execute(Commandline cl, Log log) throws
MojoExecutionException
{
try
{
if (log.isDebugEnabled())
{
log.debug("Command Line: " + cl);
}
StreamConsumer consumer = new MavenLogConsumer(log);
int exitCode = CommandLineUtils.executeCommandLine( cl,
consumer,
consumer );
return exitCode;
}
catch (CommandLineException e)
{
throw new MojoExecutionException("command line error", e);
}
}
3. Create a StreamConsumer that will funnel output to your current
maven process:
public class MavenLogConsumer implements StreamConsumer
{
private Log log;
/**
* @param log
*/
public MavenLogConsumer(Log log)
{
this.log = log;
}
/**
* @see org.codehaus.plexus.util.cli.StreamConsumer#consumeLine
(java.lang.String)
*/
public void consumeLine(String line)
{
log.info(line);
}
}
You should now be good to execute the jar command directly.
Wb
On 10/4/05, Orjan Austvold <[EMAIL PROTECTED]> wrote:
Hi,
The jar tool is located in the tools.jar archive. Try something like
sun.tools.jar.Main jarTool = new sun.tools.jar.Main(System.out,
System.err, "jar");
jarTool.run(new String[]{"cfm", "new-archive.jar", "myManifest.mf"});
Ørjan
Ashley Williams wrote:
Just to give a little more context I'm writing a plugin that simply
invokes "java -jar jaxb-xjc.jar <myschema>", hopefully
specifying which
java vm to use, eg Java 5 or Java 4. Just a simple one liner plugin
really.
On 3 Oct 2005, at 23:26, Ashley Williams wrote:
I'm writing a plugin that needs to call java -jar in the execute
method. Is there an api I should use as I don't wish to use the
java
Runtime class to do this. I've had a look at the compiler plugin
thinking that it might give me a clue (maybe by invoking
javac), but
it just delegates to some CompilerManager class.
Thanks
AW
-------------------------------------------------------------------
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Ørjan Austvold - Senior Software Architect
www.colibria.com - putting the presence into messaging
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]