It looks like I was wrong about there not being an easy way to get the
plugin classpath. From the Cobertura plugin:
/**
* <i>Maven Internal</i>: List of artifacts for the plugin.
*
* @parameter expression="${plugin.artifacts}"
* @required
* @readonly
*/
protected List pluginClasspathList;
This contains a list of org.apache.maven.artifact.Artifact objects.
The Cobertura uses the pattern you are describing, so I would suggest
you take a look at it.
Justin
-----Original Message-----
From: Roman Kournjaev [mailto:[email protected]]
Sent: Tuesday, March 03, 2009 10:30 AM
To: Maven Users List
Subject: Re: Executing another process from maven plugin
Justin , just one more small question.
The project.getCompileClasspathElements() , gets me the elements of the
classpath of the project that the plugin is actually running , but not
of the plugin itself , so i had to add plugin dependencies also to the
pom.xml where the plugin is configured. Is there a way to get the plugin
classpath too ?
Thanks in advnace
Roman
On Tue, Mar 3, 2009 at 4:59 PM, Edelson, Justin
<[email protected]
> wrote:
> The project variable (which doesn't need to be named project) should
> be injected by Plexus. Here's an example:
>
> /**
> * @parameter expression="${project}"
> * @required
> * @readonly
> */
> private MavenProject project;
>
>
> ________________________________
>
> From: Roman Kournjaev [mailto:[email protected]]
> Sent: Tue 3/3/2009 9:55 AM
> To: Maven Users List
> Subject: Re: Executing another process from maven plugin
>
>
>
> Thanks Justin
>
> If that works , then this is the solution for my problem , but i just
> cant find the *project.getCompileClasspathElements()* , where do i get
> the *project *variable from ? I didnt see it in the AbstractMojo
> class?
>
> Thanks
>
> On Tue, Mar 3, 2009 at 4:40 PM, Edelson, Justin <
> [email protected]>
> wrote:
> > I believe that will give you the class path of the current process,
> > which
> is why you're getting Maven stuff.
> >
> > If you're trying to get project dependencies, what you want to do is
> include this annotation in your class comments:
> > @requiresDependencyResolution compile
> >
> > And then, use project.getCompileClasspathElements() to get the list
> > of
> compile-scoped classpath elements.
> >
> > Justin
> >
> >
> > ________________________________
> >
> > From: Roman Kournjaev [mailto:[email protected]]
> > Sent: Tue 3/3/2009 9:29 AM
> > To: Maven Users List
> > Subject: Re: Executing another process from maven plugin
> >
> >
> >
> > Ohh, Sorry
> >
> > Just the regular thing .. : private static String getClassPath()
{
> > return
> > prop.getProperty("java.class.path", null);
> > }
> >
> > Roman
> >
> >
> > On Tue, Mar 3, 2009 at 4:26 PM, Edelson, Justin
> > <[email protected]> wrote:
> >> What is inside the getClassPath() method?
> >>
> >> On Mar 3, 2009, at 8:58 AM, "Roman Kournjaev" <[email protected]>
> wrote:
> >>
> >>> Hi Folks
> >>>
> >>> I am a little bit stuck here with the following problem.
> >>>
> >>> I have written some custom compiler plugin that invokes the actual
> >>> compiler, the problem is that i have to do it in a separate
> >>> process
> >>> Runtime.exec(....)
> >>>
> >>> It goes like that :
> >>>
> >>> Process process = null;
> >>> String command = "java -cp \"" + getClassPath() + "\" "
> >>> +
> >>> AgentCompiler.class.getCanonicalName() + " " + cmd;
> >>> getLog().info("executing : " + command);
> >>> process = Runtime.getRuntime().exec(command);
> >>>
> >>>
> >>> Well, when i run it from plain java , it works fine ... :-)
> >>>
> >>> When i run it as a plugin actually , then i get crappy stuff in my
> >>> classpath ,everything from maven , but nothing that i actually
> >>> defined in my
> pom.xml
> >>> inside the plugin.
> >>>
> >>> I also tried to add these dependecies (plugin dependencies) inside
> >>> the <plugin><dependencies> tag , inside the pom.xml that makes use
> >>> of that plugin , but also in vain , i still get the same
classpath.
> >>>
> >>> So long story short .. How to the the needed classpath for running
> >>> a process outside a maven plugin ???
> >>>
> >>> Thanks in advance.
> >>>
> >>> Roman
> >>
> >> -------------------------------------------------------------------
> >> -- 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]