How Eclipse's official packages are built and my packaging problem [message #606452] |
Wed, 11 August 2010 00:40 |
nc Messages: 4 Registered: August 2010 |
Junior Member |
|
|
http://www.eclipse.org/downloads/
Can someone explain how these packages from the official Eclipse download site are built? I think they are built with PDE as described in this page.
http://wiki.eclipse.org/Building
I am working on a project based on the CDT features/plugins and some other third party plugins (let's say EGit plugins).
I am using Eclipse 3.5.2.
Assume the feature and plugin I developed are called
com.foo.feature
com.foo.core
com.foo.feature has com.foo.core included in the "Plugins and Fragments".
com.foo.core has a foo.product file, which uses org.eclipse.ui.ide.workbench as the application.
com.foo.core plugin has a couple of CDT plugins in the Dependencies list.
I also have set up a update site for users to do update the com.foo feature/plugins.
My goal is to provide a distribution with
Eclipse platform
CDT features/plugins
EGit features/plugins
com.foo features/plugins
Approach 1:
1).Download the CDT version of Eclipse (called "Eclipse IDE for C/C++ Developers").
2).I ran it. From the "Install New Software", I installed the EGit from EGit's update site and installed com.foo feature/plugins from my own update site.
Then I package this one as a distribution version. In this way, I got the p2 information initialized correctly for EGit and com.foo. The problem is this version has my identity under configure folder and p2 folder because I ran it and did some installation.
I know this is definitely not a right way to do the distribution.
Approach 2:
I installed CDT and EGit to my RCP version of Eclipse.
I configured foo.product to be a plugins based product. I added all the CDT plugins and Egit plugins and other required plugins into the dependencies list in the product. Some of those required plugins are standalone plugins that don't belong to any features such as org.apache.commons.*.jar, and com.jcraft.jsch.*.jar.
The Product Export succeeded. And I can run the eclipse with my branding.
The problem with this approach is all the plugins under some features are just treated as individual plugins. In the About, you cannot see features listed. I also suspect the update for CDT/Egit from a update site are broken.
One more thing worth mentioning is both RCP and CDT installed a version of org.apache.commons.codec. In the dependencies list in the product, without giving a version, the export failed.
Approach 3:
I configured foo.product to a feature based product. I added all the CDT/Egit features and other required features to the Dependencies list. As mentioned above, since some plugins are standalone plugins not belonging to any features. There is no way to add those plugins to the product.
I read some other people's solutions such as this one
http://manuelselva.wordpress.com/2010/07/07/plugin-product-v s-feature-product/
We can have the com.foo.feature to include all the standalone plugins in the dependencies list.
I really don't want to have my com.foo.feature to be messed up with a bunch of plugins not created by me. I want it to include only plugins under the com.foo namespace.
So my questions are:
1.How can I bundle Eclipse platform, CDT, Egit and my feature/plugins together as a distribution with all the p2 data initialized correctly?
2.I plan to use PDE build to automate the build using ant script. I really want to know how the official eclipse packages were built. How the core platform, CDT features/plugins, and standalone pugins are bundled together?
The question can be more general: Assume we have features/plugins from different vendors. How can I bundle them together to create a distribution version with all the p2 initialized correctly?
Thanks so much for your advice.
|
|
|
|
Powered by
FUDForum. Page generated in 0.03130 seconds