|Re: [tycho-user] Building product with feature and feature individually|
There are many ways to build different features, here is what I am using to build an Eclipse RCP with many different features and plugins which are independent from each other.
All pom files do have one master pom. The master pom is in the root directory containing all global settings.
I try to keep the plugin and feature pom files as simple as possible and I maintain different other pom files which are responsible to build that plugins and features, so none of my plugin and feature pom.xml files do contain stuff like <module>. So the files in the org.example.featureX and org.example.pluginX folders are regular Tycho pom files.
The more interesting files are in the folder org.example.releng. There I do have a folder for each feature. Within that folder, I do have different subfolders which all do have one pom.xml file which is responsible for a dedicated task.
This pom is responsible to build the whole feature1, including all its plugins and it also builds the update site. This pom file is used by the CI Server (Jenkins in my case) to build the feature1. I do call this pom file “the feature build pom”.
This pom is building the update site for feature1 and gets called from the build pom.
The feature2 includes feature1 (see org.example.feature2/feature.xml). To build the feature2, the update site from feature1 must be specified in the feature2 build pom (org.example.releng/feature2/build/pom.xml).
The URL is pointing to the last successful build artefacts on the CI Servers job which builds feature1.
The product pom file (org.example.product/pom.xml) does need all update sites from all the features it contains, so within that pom file there is the <repository> from feature1 and feature2 specified.
Sure, it is not really necessary to have such a deep folder structure but for us this works quite well. You could also specify all update site as repositories in the master pom but if you keep them within the feature build pom files, you see in a build pom at a glance what dependency this feature does have.
I hope this helps.
Von: tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-bounces@xxxxxxxxxxx]
Im Auftrag von Lutz Wrage
Maybe I need three builds, (1) product without feature, (2) feature, and (3) product with feature? I hope the solution will be simpler than that.
I'd appreciate if you could provide access to the example you mentioned.
On Mon, Mar 9, 2015 at 11:06 AM, SCHREIBER.Martin <M.SCHREIBER@xxxxxxxxxxxxx> wrote:
why do you need to reference the product repo in the feature?
Do you know the Tycho Demo Project ? Maybe that helps. I can also provide a working example if you like which builds a feature (and its plugins) and a product where both could be executed individually.
Im Auftrag von Lutz Wrage
I am trying to understand the best way to set up the tycho build for the following scenario:
I have a product P containing a couple of features F1, F2, ... To build the product I currently have a pom that lists all features (and plugins) as modules. This works fine, and I also generate an update site that has all features in it.
Our new requirement is to also be able to build feature F1 individually and create a separate repository so users can update this feature more often than the product. Is it possible to do this by just adding to the existing pom files, or do I always have to build F1 separately and use the resulting repository in the product build?
When splitting the build in two steps it looks like I have a cyclic dependency problem. To build the feature individually, I need to reference the product repo, and to build the product I need to reference the feature repo.
Back to the top