Seems I have missed some interesting threads on the dev list ! What is this "build plan" ? Is this related to http://docs.codehaus.org/display/MAVEN/Toolchains
I didn't find proposal / description of this mechanism on http://docs.codehaus.org/display/MAVEN/Home Nico. 2007/12/22, Jason van Zyl <[EMAIL PROTECTED]>: > > > On 22 Dec 07, at 4:49 AM 22 Dec 07, nicolas de loof wrote: > > > The "checkMissingArtifactsInReactor" method is only used when the > > plugin is > > an aggregator. > > > > The eclipse plugin may fail when it ask for execution of > > phase=generate-sources, as some plugins requires dependency resolution > > (sample : an ear having dependency on a war). But in this case, the > > execution is not done in reactor. > > > > To solve this issue, I have two options : > > > > - make enhancements to core and plugin api to support a new > > ConfigureMojo > > API for plugins that have to declare some project level metadatas > > (generated > > source folders, or other...). This would require a new maven > > release, and > > maybe wiat for 2.1 > > > > You should sync up with John Casey as the build plan is the mechanism > by which the lifecycle can be controlled before execution. So you we > make the plan available, the plan can be altered before execution, > then the plan is executed. Imagine visually the plan in an IDE so that > the user can change anything before it does in fact execute. > > Not in favor of your general approach there, the build plan is the way > to go. > > > - change the way the eclipse plugin force a generate-resources phase > > to be > > executed. AS this is NOT done in reactor, even when the eclipse > > plugin does, > > the "*can't be resolved but has been found in the reactor*" does not > > occur. I've no idea how a plugin can access the current MavenSession > > and > > execute a phase/plugin, as @execute phase="" is not enough for this > > use > > case. > > If this works for the eclipse plugin then I would build up what it is > exactly you need an put it on the proposals page. You can get > something working quickly and think about the long term. > > The plugin configuration gets tricky because you want it before > artifact resolution proper, but you may want the POM or plugin > metadata to alter the build plan. So doing it properly would really > entail putting the plugin metadata somewhere available outside the JAR > so that we don't need to pull down everything for the user to make > changes to the build plan. > > > > > > > Nico. > > > > > > 2007/12/20, Brian E. Fox <[EMAIL PROTECTED]>: > >> > >> This is done automatically by the core. If you inspect the file > >> handle > >> of artifacts passed to a plugin in a reactor build: if the phase > >> compile > >> was executed, it will point to /foo/target/classes. If the phase > >> package > >> was executed, it will be /foo/target/foo-version.jar, and if > >> install, it > >> will point to the repo. > >> > >> -----Original Message----- > >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > >> Behalf Of nicolas de loof > >> Sent: Thursday, December 20, 2007 9:57 AM > >> To: Maven Developers List > >> Subject: Re: how to bypass dependency resolution ? > >> > >> I just noticed when running release:prepare > >> > >> " > >> [WARNING] The dependency: test:test2:jar:2-SNAPSHOT can't be resolved > >> but > >> has been found in the reactor. > >> " > >> > >> This sounds like a project running in the reactor CAN bypass > >> dependency > >> resolution on its artifacts. > >> > >> Could someone explain me HOW it is done by the releaseManager and > >> how we > >> could port this code to IDE-plugins ? > >> > >> 2007/12/18, nicolas de loof <[EMAIL PROTECTED]>: > >>> > >>> > >>> For those who didn't follow my provious post, the issue is about > >>> IDE-support plugins that require a previously-built project to setup > >> the dev > >>> environment. When the source code is broken, you have to fix it > >>> under > >> VI / > >>> notepad. > >>> > >>> I experimented Kenney > >> Westerhof<http://jira.codehaus.org/secure/ViewProfile.jspa?name=kenneyw > >> > > >> idea, as exposed in MECLIPSE-37 : > >>> > >>> - I created a ConfigureMojo interface with single method > >>> configureProject() > >>> - I updated AbsractMojo to do nothing on this method > >>> - I enhanced JavaMojoDescriptorExrtaction to support a new > >>> @configure > >>> phase="" > >>> > >>> that was the simple part ;-) > >>> > >>> I now need to update maven core to support a "configure" lifecycle > >>> execution mode, so that the eclipse plugin can trigger a forked > >> lifecycle in > >>> sort of "dry run" mode. In this mode, the lifecycle should not fail > >> when > >>> resolving dependencies, or maybe not honnor > >> @requiresDependecyResolution at > >>> all. Existing Mojos will not be affected, and updated ones will > >> declare > >>> generated folders or any other setting usefull at configuration- > >>> time. > >>> > >>> What is the good place to add such a "configure" (dry-run) support ? > >>> > >>> It would require to enlarge the (allready long) > >>> DefaultLifecycleExecutor.forkProjectLifecycle method for the " if ( > >>> mojoDescriptor.getConfigurePhase() != null)" case. > >>> > >>> It would also require to bypass the DefaultPluginManager.executeMojo > >> "if ( > >>> mojoDescriptor.isDependencyResolutionRequired )" > >>> > >>> Maybe the simplier would be to cerate a DryRunLifecycleExecutor and > >>> DryRunPluginManager ? > >>> > >>> Any suggestion is welcome... > >>> > >>> Nico. > >>> > >>> > >>> > >>> > >>> 2007/12/14, nicolas de loof < [EMAIL PROTECTED]>: > >>>> > >>>> Hello, > >>>> > >>>> some MECLIPSE issues are related to the phase executed by the > >> eclipse > >>>> plugin to collect generated-* folders. > >>>> > >>>> Here is a simple example of the side-effect of this strategy > >>>> > >>>> pom.xml > >>>> |_ ear project > >>>> |_ jar project > >>>> |_ war project > >>>> > >>>> Lets supose the jar project is broken and can't compile. > >>>> > >>>> Checking the project from svn and running mvn eclipse:eclipse > >>>> fails, > >> as > >>>> the maven-ear-plugin has @RequireDependencyResolustion(test) (is > >> this really > >>>> required ?) on GenerateApplicationXMLMojo > >>>> > >>>> mvn install also fails as the jar plugin is broken > >>>> > >>>> There is NO way to configure eclipse and fix the project ! > >>>> > >>>> My first idea is to find some hook in the ArtifactResolver (or > >> other) to > >>>> register the multiproject modules as "fake" artifacts, so that > >> dependency > >>>> resolution doesn't fail. I looked at DefaultArtifactResolver ... > >>>> but > >> is far > >>>> too complex for me and can't find where the Artifact objects are > >> created, > >>>> and how the associated File object could be hacked > >>>> > >>>> A cleaner fix would be to have an early phase for generate-* Mojos > >> to > >>>> register generated folders... but hits requires changes on most > >> plugins - > >>>> maybe could be planned for maven 2.1 ? > >>>> > >>>> Any suggestion ? > >>>> > >>>> Nico. > >>>> > >>> > >>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > Thanks, > > Jason > > ---------------------------------------------------------- > Jason van Zyl > Founder, Apache Maven > jason at sonatype dot com > ---------------------------------------------------------- > > What matters is not ideas, but the people who have them. Good people > can fix bad ideas, but good ideas can't save bad people. > > -- Paul Graham > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >