Sciology = Science + Technology

Commonsense in Technology

Any recommended strategy for eclipse plugin build ?

Posted by sureshkrishna on December 11, 2007

I am on a cross-road and i have too many choices to make. My requirement is pretty simple that i need to able to build the plugins and my RCP application via automated build. Our server side product runs on the cruise control and src code is in SVN; so, i would like to use the same infrastructure for eclipse plugin build too. Unfortunately i do not see or i am not aware of any of recommended strategies for the plugin build and also some tips on automated nightly builds. I am aware of the following strategies.

  • A simple ant script
  • Maven Project
  • PDE Build

Which of the above  strategies would anyone recommend and why ? For me i also have the requirement that my plugins should be compiled against a specific eclipse versions and we want to have this as an Eclipse IDE application.

Can anyone point me to the right resources ? And also its interesting to know the build system used by Eclipse and other  product leaders like Instantiations, Genuitec and Innopract.

Advertisements

7 Responses to “Any recommended strategy for eclipse plugin build ?”

  1. Suresh,

    We’re in a similar situation as you are in. There’s a cruise box that checks out code out of SVN, and runs a PDE Build.

    We prefer PDE Build over anything else as it’s much simpler to maintain over a period of time. Although there’s a lot of initial time needed to write some build scripts, not to mention pain and frustration of not getting things right after a couple of days, but things just work once set up see http://neerajs-blogs.blogspot.com/2007/12/build-successful.html

    You could look at the pde build located at http://swtbot.svn.sourceforge.net/svnroot/swtbot/trunk/net.sf.swtbot.build, the build instructions are available at http://swtbot.sourceforge.net/wiki/Source.

    I’m using cruise to build this project after every checkin, you’d know how to set up a nightly build on cruise.

    And yes, SWTBot (beta) is finally out. Do try it out if you have the time 🙂

  2. Oops I meant http://swtbot.svn.sourceforge.net/svnroot/swtbot/trunk/net.sf.swtbot.build and http://swtbot.sourceforge.net/wiki/Source wordpress seems to add punctuation as part of the link.

  3. Slavus said

    I would recomend you to use ant script that runs headless Eclipse PDE build.

    That is the way I am buildng an Eclipse RCP app at work on Anthill Pro

    You can integrate your Ant script in your build managment system (cruis control in your case).

    A good starting point is Eclipse Help under Plug-in Development Environment Guide look for folowing chapters: Tasks( specialy
    Building an RCP application from a product configuration file) and Reference(specialy uilder Configuration Properties)

    With eclipse headless build of product you can specify against which specific eclipse versions you want to compile, and lot of other stuff.

    As far as I know Eclipse is built this way.

    There are couple of good resources about this issues on Eclipse cons.

    Here are some good links you can follw:
    http://eclipsenuggets.blogspot.com/2007/09/6-great-links-for-eclipse-build.html
    http://www.eclipsecon.org/2006/Sub.do?id=18

  4. Actually,

    The best solution I have worked with so far is Buckminster. Buckminster has a fair learning curve. For early adopters, the lack of documentation and some early-stage bugs proved somewhat annoying, but most of these issues have been sorted out by now.

    Buckminster is a wonderful release engineering tool, which can be used both inside the Eclipse IDE, as well as in headless mode, executing nightly or continuous builds; it works great under a CruiseControl umbrella.

    For Eclipse RCP applications, Eclipse plug-ins, features or products Buckminster uses the project metadata directly without the need for additional descriptors. However, for regular JDT projects, you’ll need to create Component Specifications, just as you would need to create POMs for Maven.

    Buckminster will populate your workspace with projects starting from a top-level component, only. It will automatically resolve and materialize all dependencies.

    It works with SVN repositories, with both the Subclipse, as well as the Subversive plug-in (the latter through a contribution by my colleague Thomas Spiessens).

    Why don’t you too give it a try?

  5. Patrik Schalin said

    We’re also running a cruisecontrol setup with ant and PDE build with the additional challenge of using ClearCase… 😉

    My initial feelings about PDE build is that when starting out it can be a “pain in the …” but once you get a feel for it you will have a very powerful setup. Actually, it might be easier for you as documentation has improved since I started out with PDE.

    You’ll find some useful info on the Eclipse Wiki and don’t forget to learn what you can do with customTargets.xml…

    Good Luck!

  6. pjpaulin said

    Hi Suresh,

    This is unrelated, but I wanted to let you know that the title of your posts is defaulting to your WordPress user name on Planet Eclipse. This happened to me when I uploaded an avatar, not sure if the same thing is happening to you. Anyway, I had the Planet Eclipse people add “?mrss=off” to the end of my feed url, and that fixed it.

    — Patrick

  7. tuxesse said

    Hi,

    I’m going to work with buckminster and i want to know if buckminster can generate a pom
    file for maven in order to get the jar or it can directly provide a jar ?

    I would be grateful if you can give me good links to start (except the documentation of buckminster on the eclipse website 🙂 )

    Thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: