Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pde-build-dev] Eclipse Builds and Maven 2.x


I think I start to see your points about integration but I'm a bit surprised as I thought that the whole dependency resolution was not pluggable.

>Does PDE care that the source was fetched with ant and place at /x/y/z or does it merely want the action performed?
PDE does not care how the source is obtained, in the end it just needs to know where on the local filesystem it is located and what to do with it (this is why we have the build.properties).

PaScaL, curious to taste the maven kool-aid.





"Wendell Beckwith" <wbeckwith@xxxxxxxxx>
Sent by: pde-build-dev-bounces@xxxxxxxxxxx

06/07/2006 12:02 PM

Please respond to
"Eclipse PDE Build developers list."

To
"Eclipse PDE Build developers list." <pde-build-dev@xxxxxxxxxxx>
cc
brett@xxxxxxxxxxxx
Subject
Re: [pde-build-dev] Eclipse Builds and Maven 2.x







On 6/7/06, Pascal Rapicault <Pascal_Rapicault@xxxxxxxxxx> wrote:

Hi,


I'm a bit confused by your proposal of opening up pde build to work with maven. The main problem I see is around the fact that both PDE and Maven require control over the build loop, to know what to fetch, decide the build order, etc. I think I migh have missed something in your proposal.


I understand the control issue but I don't know that the 2 are completely incompatible.  At a high level maven uses and derives information from the pom file, and then runs through a set of lifecycle phases (validate, compile, test, package, deploy, ...) and calls all the plugins registered to run within a specific phase.  Gross oversimplification probably but hopefully the gist of what it does comes through.  At this point it is the job of each individual plugin to do a well defined job, such as generate the dependency tree based on the plugin's manifest.mf.  This is why I was referring to a build model because PDE should call out the lifecycle phases that it wants to do like retrieve the sources, compile, test and install.  Then the underlying system would perform the correct phase in their native language.  Ant builds would invoke targets and maven builds would invoke goals (same as targets).  Does PDE care that the source was fetched with ant and place at /x/y/z or does it merely want the action performed?


As Jeff mentionned, what we have discussed in the past is to investigate whether or not Maven (or other similar technologies) is a suitable replacement story for PDE Build or actually turn PDE build in some sort of pom file generator. However from a quick glance at it, it seems that converting to maven is not immediate and not lost less, which of course make us wonder what would be the benefits of moving to maven if we have to rewrite a lot of PDE build functions in maven plug-ins (this is really a question). In any case, I can only re-emphasize Jeff's point that we are interested in seeing if we can leverage Maven and your non trivial experience with Maven is more than welcome.

PaScaL


I'm cc'ing Brett Porter (maven dev) on this as he no doubt has more intimate knowledge about maven than I do.  Brett, please feel free to chime it or direct this to a more appropriate dev.  Nonetheless, I would not imagine that you would need to rewrite a lot of code so much as it would be necessary to repackage some code as simple jars to be used by any build system and then the rest would become maven plugins _IF_ pde was to drink the maven kool-aid.

"Wendell Beckwith" <wbeckwith@xxxxxxxxx>
Sent by:
pde-build-dev-bounces@xxxxxxxxxxx

06/06/2006 07:41 PM


Please respond to
"Eclipse PDE Build developers list."

To
pde-build-dev@xxxxxxxxxxx
cc
Subject
[pde-build-dev] Eclipse Builds and Maven 2.x







This came up previously in this thread,
http://dev.eclipse.org/mhonarc/lists/pde-build-dev/msg00076.html
, but it seems to have fallen on the floor and rolled under the couch.  Nonetheless, my company had migrated out builds to maven and we were reaping the rewards of mavenized nirvana when we started developing RCP apps and needing to build the plugins in our automated build system, Anthhill Pro.


I've checked out the org.eclipse.pde.build plugin and from what I can tell the current build system is too tightly coupled to ant.  Recently in the 3.2 timeframe the IFetchFactory was introduced to deal with getting source from cm systems other than cvs ( i.e. subversion, perforce, etc).  This was a welcome change but even then the result was forced to generate ant.  I have not done a complete review of all 66 source files in the build plugin, but from a quick review it seems like the eclipse build mechanism could be refactored to support other build mechanisms without breaking the current predisposition towards ant.

>From a high level eclipse wants to do pre and post actions for build setup, retrieving the source, building the feature/plugin, testing the plugin, assembling the feature/plugin, packaging and publishing the feature/plugin.  These actions map extremely well to maven 2's notion of a lifecycle.  Either the current default maven 2 lifecycle could be used or a custom plugin can be defined that uses an eclipse specific lifecycle similar to how the clover plugin has its own lifecycle.  To make this happen I think that there should be a org.eclipse.pde.build.IBuildScript interface that is used.  The current IAntScript interface could extend the IBuildScript interface to maintain backwards compatibility.  Nonetheless, if the lifecycle phase methods were placed in the IBuildScript interface then other methods builds systems (IMavenScript, IIvyScript, IJamScript, etc) could be plugged in at ease without being tied to a specific one.

There may be glaring holes and over simplifications I have made but getting our builds working again in a smooth fashion is a priority goal I have and currently I have 1.5 engineers I can throw at the problem.  Thoughts??

Wb_______________________________________________

pde-build-dev mailing list

pde-build-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pde-build-dev


_______________________________________________
pde-build-dev mailing list

pde-build-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pde-build-dev


_______________________________________________
pde-build-dev mailing list
pde-build-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pde-build-dev


Back to the top