Create your own Eclipse distro made easy

To foster adoption of your tool it might make sense to provide all-in-one downloads. This makes sense if your product has dependencies on many different 3rd party plugins (and you e.g. need very specific versions) or you want to make it super easy for your users to start using your tool.

Since e(fx)clipse provides such downloads to its users many people who are not yet familiar with eclipse and want to give it a shot use the distros we are providing.

Until today those distros have been created through a shell script provided by Denis Hübner from itemis but because I’m not an bash guru, customizing it to my needs was a bit painful and so I decided to write my own very very simple distro builder using Java.

Our CI-Server now generates distros using this ant-file

	<property name="efx.version" />
	<taskdef name="builder" 
		classname="at.bestsolution.releng.distrobuilder.ant.DistroBuilderTaskDef" />
	<target name="build-distros" description="Build distros">
		<echo>Hello World</echo>
			<updatesite url="" os="win32"/>
			<p2repository url="${efx.version}.zip"/>

			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name=""/>
			<installunit name="" />
			<installunit name="" os="win32" arch="x86" />
			<installunit name="" os="win32" />
			<installunit name="" os="win32" />			

Building the distro / platform takes around 30 Seconds. Currently we are building 3.7.2, 3.8.0 and 4.2.0 for linux (x86,x86_64), mac-cocoa (x86_64), win32 (x86,x86_64).

I’ve shared the small utility on I hope you find this small utility useful.

10 thoughts on “Create your own Eclipse distro made easy

  1. Stefan July 16, 2012 / 9:20 pm

    I have a quite similar solution in bash:
    But instead of customizing the script for different distros, there are simple configuration files that look very similar to the parameters in your ANT target.

  2. Sebastien Gandon August 1, 2012 / 12:35 pm

    Is it possbile to build an all platform distribution with Windows, Mac OSx, linux… naitve aunchers in the same distribution ?

    • Tom Schindl August 1, 2012 / 12:40 pm

      An interesting question, I’ve never thought about that. The problem is most likely that the native launcher searches for the config.ini in a special location which is not different between the different installs (at least Linux and Win have the same structure).

  3. Alex Tugarev August 14, 2012 / 8:47 am

    Hi Tom,

    thank you for sharing the distro builder ant task! I’ve got a suggestion for small improvement for you. It would be nice to have a script parameter “appDefinition” passed to

    at.bestsolution.releng.distrobuilder.DistroBuilder#buildDistro(File, String, String, String)

    so not everyones distro get labeled “efx”🙂


    • Alex Tugarev August 14, 2012 / 8:53 am

      PS: Please also check at.bestsolution.releng.distrobuilder.ant.DistroBuilderTaskDef.getVersion()

      • Tom Schindl August 14, 2012 / 9:11 am


    • Tom Schindl August 14, 2012 / 9:11 am

      ok fixed you pass the name now to buildDistros(String name)

      • Alex Tugarev August 14, 2012 / 10:02 am

        Works like a charm!

Leave a Reply

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

You are commenting using your 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