开发者

Eclipse: What is the minimum Eclipse installation needed for a headless PDE build?

开发者 https://www.devze.com 2022-12-21 16:17 出处:网络
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.

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:

  1. Fired up a recent Eclipse IDE (in my case, the 3.5 instance I use at the moment).
  2. Used a scratch workspace, so changes to the target platform wouldn’t mess up my “real” projects.
  3. 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)
  4. Created a new empty project.
  5. Created a new Product Configuration within that project (using the "basic settings").
  6. On the new product configuration's "Overview" page, unchecked “The product includes native launcher artifacts.”
  7. On Dependencies, specified the following plug-ins as constituting the product:
    • org.eclipse.pde.build
    • org.apache.ant
    • org.eclipse.jdt.core
  8. Checked “Include optional dependencies . . .”
  9. Clicked “Add Required Plug-ins”.
  10. Right-clicked product definition in Package Explorer and picked “Export… | Eclipse product”.
  11. Told it where I wanted my PDE builder instance to go.
  12. Unchecked “Synchronize before exporting”.
  13. Unchecked “Generate metadata repository”.
  14. 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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号