I am currently using PDE build in headless mode to build my OSGI Bundle project. The PDE Antrunner task uses an Eclipse installation and I am just pointing it to my local Eclipse installation.
unfortunatelly my eclipse installation is about 260MB big, but I assume that a PDE build does NOT require all of those plugins in a standard eclipse installation.
Does anyone now what is the minimum list of plugins I need for doing a headless PDE build? All of my dependencies I actually have in a custom target platform folder, so I guess the only thing I need from my eclipse installation are the dependencies which PDE build actually needs. But what are those? Can I shrink my installation to a very minimum?
My goal is to also check-in this "build-eclipse" folder into my project's SVN so that when you check it out, you have everything you need to start a full build, without touching any build.prop开发者_运维技巧erties. But I don't want to commit 266MB of eclipse if I maybe need only 20MB of it.
Thanks Christoph
I finally needed to do this myself today (to address a problem I was having where directories with spaces in their names weren't being included in the bundle PDE Build produced). I eventually got something that could build my collection of (Java-based) plug-ins. I don't know whether it's "minimal", but it's Java PDE Build-focused and much smaller than a full Eclipse IDE install.
I took rough notes; there could be a few omissions or superfluous steps here, but in the main it should guide.
I:
- Fired up a recent Eclipse IDE (in my case, the 3.5 instance I use at the moment).
- Used a scratch workspace, so changes to the target platform wouldn’t mess up my “real” projects.
- Made sure the target platform was set to the place I wanted to draw my PDE builder's plug-ins from (in my case, just my running Eclipse). (Window | Preferences... | Plug-in Development | Target Platform)
- Created a new empty project.
- Created a new Product Configuration within that project (using the "basic settings").
- On the new product configuration's "Overview" page, unchecked “The product includes native launcher artifacts.”
- On Dependencies, specified the following plug-ins as constituting the product:
org.eclipse.pde.build
org.apache.ant
org.eclipse.jdt.core
- Checked “Include optional dependencies . . .”
- Clicked “Add Required Plug-ins”.
- Right-clicked product definition in Package Explorer and picked “Export… | Eclipse product”.
- Told it where I wanted my PDE builder instance to go.
- Unchecked “Synchronize before exporting”.
- Unchecked “Generate metadata repository”.
- Clicked "Finish".
Now I can (continue to) launch a PDE Build from my normal Ant build by invoking a macro like the following (is there a better way?):
<macrodef name="build-a-product">
<attribute name="config-dir"/>
<sequential>
<property name="product-build-file" value="${pde-builder-path}\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml" />
<java jar="${pde-builder-path}\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar" fork="yes" failonerror="yes" >
<arg value="-application" />
<arg value="org.eclipse.ant.core.antRunner" />
<arg value="-buildfile" />
<arg value="${product-build-file}" />
<arg value="-Dbuilder=@{config-dir}" />
<arg value="-Dbasedir=${basedir}" />
</java>
</sequential>
</macrodef>
I can't directly answer your question, but I can wave my hands around a little bit, some of which might help you find a real answer.
In my PDE experience I have found it very useful to distinguish:
- The Eclipse IDE I was using for interactive editing
- The "Eclipse" installation I was using for headless PDE builds
- The "target platform" (set of plug-ins/features/etc. the thing I'm building depends on)
It sounds like these are clear, separate concepts in your head as well: you have already isolated the "target platform" and are looking to isolate your interactive Eclipse from your PDE builder.
You could try creating a new (blank) workspace in your interactive Eclipse (just to be sure you're looking at it, not at your target platform), opening the "Plug-ins" view, right-clicking a promising-looking plug-in like org.eclipse.pde.build
, and choosing "Open Dependencies". The "Flat Layout" might be a more useful way to view the results than the hierarchical, though in my Eclipse I don't seem to be able to copy and paste this list.
In my case this didn't mention anything in the JDT which makes me think that actually trying to build a Java-based plug-in would fail, but hopefully that would provide another lead (e.g. "can't find org.eclipse.jdt
", or something).
It seems like there "ought" to be a way to use the Software Updates mechanism, Target Platform, or Buckminster to just name one plug-in and have all the others fall into place. Maybe you could use the Target Platform, select the plug-in you need, hit the button to select required ones, then somehow export a "build" that would effectively just collect all those plug-ins?
I confess that we just checked in an interactive Eclipse some time ago and use it as our PDE builder. We don't use it interactively, and we do maintain a separate target platform as well. Our PDE builder is clearly not minimal, but could also perhaps stand to be, so I hope you'll update this space with your discoveries.
精彩评论