On Sun, Jun 12, 2005 at 11:52:55AM +0200, Vincent Massol wrote:
> 
> 
> > -----Original Message-----
> > From: Brett Porter [mailto:[EMAIL PROTECTED]
> > Sent: lundi 2 mai 2005 09:02
> > To: Maven Developers List
> > Subject: Re: lifecycle design: clover and other use cases
> 
> I've started working on the m2 clover plugin again and I'd like to continue
> our design discussion.
> 
> ATM I have one mojo that binds to the generate-sources phase and that
> generates clovered sources in a target directory.
> 
> Now the issue is that those generated files are not yet picked up by the
> compiler:compile goal. I'm about to try modifying the
> ${project.compileSourceRoots} in CloverMojo but I don't know if that'll have
> any effect on the CompilerMojo...

From the Modello Maven plugin[1]:

  project.addCompileSourceRoot( outputDirectory );

where project is declared like this:

  /**
   * @parameter expression="${project}"
   * @required
   */
  private MavenProject project;

> 
> [snip]
> 
> > >I'm not sure I understand the "@executePhase <somephase>" tag? Is it like
> > a
> > >m1 prereqs in that it tells m2 to execute the <somephase> phase before
> > >executing the mojo goal?
> > >
> > Yes, it is sort of a prereq, except that it is always executed if the
> > other goal is attained, and there is only one. It's better thought of as
> > a clean, parallel invocation of the lifecycle. It's currently being used
> > in idea:idea to ensure generate-sources is called.
> 
> In the IdeaMojo, there is:
> 
> /**
>  * @goal idea
>  * @executePhase generate-sources
>  * @requiresDependencyResolution test
> 
> I still don't understand the difference between "@phase generate-sources"
> and "@executePhase generate-sources".
> 
> Also, could you please explain what @requiresDependencyResolution means?

By having this tag Maven will make sure that all the dependencies of a
project is downloaded. This is what makes the clean plugin not download
all dependencies before execution.
 
> Are you suggesting to use an executePhase instead of a phase for the
> CloverMojo?
> 
> [snip]
>  
> > >"Desired use:
> > >- m2 clover:clover
> > >  1) register clover compiler goal into generate-sources
> > >  2) modify output directory
> > >  3) run test (based on executePhase)
> > >  4) report database later reused"
> > >
> > >Does this cover the following m1 use case: "maven clover:on war
> > clover:off"?
> > >
> > >
> > So you can include those classes in the WAR? Yes. Just set a different
> > executephase, and change the finalName.
> 
> Are you saying that executePhase can be specified by the plugin's user in
> the pom.xml file?
> 
> > >How do you tell clover:clover that it should execute the war goal or
> > >anything else for that matter?
> > >
> > >
> > <executePhase/>. This part may require more thought - I have a bunch of
> > alternative ideas locally - these seemed the best to me, but if there
> > are any holes then I'm up for changing it.
> 
> I still don't understand this. Has this been firmed up throught the recent
> design talks?

Think of executePhase as a separate invocation of Maven. When running the
idea plugin (which has executePhase=generate-resources) Maven will execute
the generate-sources and generate-resources phases. Each plugin that has
@phase=generate-sources or generate-resources will also execute in this
subexecution and thus properly add any generates sources directories to
the compile sources set.
 
> Thanks
> -Vincent

[1]: 
http://cvs.modello.codehaus.org/modello/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloGeneratorMojo.java?rev=1.2&view=auto

--
Trygve

Attachment: signature.asc
Description: Digital signature

Reply via email to