Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-user] Target Platform best practice for "parentless" modules

Hi everyone!

Currently I'm trying to migrate an existing Eclipse RCP application from Buckminster to Tycho. Right now I'm pretty much stuck and the last two days of research and reading loads of articles, books and whatnot didn't help.
Maybe we're also in need to make some kind of mindset-shift when using Tycho, that's why there is the "best practice" part in my question...
Anyway, here's what we try to migrate:
We have an application with loads of bundles and features, pretty standard stuff. Setting up tycho for this was easy and quick and not much of problems here.
The point now is: we're developing a company-internal framework on top of Eclipse RCP which then is our base for pretty much all our applications. This framework is from an SCM point of view completely separate in its own repository.
We integrate it in our applications as a sub-repo which then becomes checked out and built as well when the application is built. This might be a bit odd from a artifact management point of view (one would probably expect to have final built arttifacts somewhere in a p2 repo or the like), but as most projects contribute to this base quite often and usually do so first in their own feature branches directly during application development (before it then becomes merged later on) this worked fine so far.
So in general we have two parts: the application itself and the framework, lying around on disk like that:

workspace
  - application
    - features (all the features go here)
    - plugins (application bundles)
    - nls
    - ....
  - shared_framework
     - bundle1
     - bundle2
     - ...

All this is now built against a target platform which is designed for each application. We do this because we want to avoid that unwanted dependencies slip in because some developer thought it was cool to use library X without clearing things with anyone. That target platform is then (obviously) used for both the application bundles and the framework. And that's what we failed so far to reproduce again: because the POM of the application is not the parent of the POM for the framework, the build fails for the framework bundles as the target platform is not available to them.
So the pretty broad question would be what options there are to solve this in an elegant way.
I for myself can think of several solutions, whereas maybe some of them are not a good idea or even don't work.
  • Somehow get it to work that the framework can pick up a (kind of) implicitely defined target platform from the application build ("loosely coupled parent"?)
  • Define a separate target platform for the framework build. This would probably be the easiest way.
  • First install the necessary bundles to the local repo so that they are available when the framework bundles are built (this option seems strange to me as a mvn/tycho newbie, especially because I somehow don't want to have a multistep-build, at least not for "just" building all needed application and framework bundles)

Any input is highly appreciated, especially if we're on a totally wrong path here in terms of tycho!

Mit freundlichen Grüßen / kind regards
i.A. Andreas Schilling
Enterprise Processes & Software
-------------------------------------------------------------------
Dipl. Inf. Andreas Schilling
Senior Software Architect

TWT GmbH
Science & Innovation
Ernsthaldenstraße 17
D-70565 Stuttgart
 
Tel: +49.7 11.21 57 77.6 73
Mobil: +49.1 72.6 22 88 70
E-Mail: andreas.schilling@xxxxxxxxxxx
--------------------------------------------------------------------
www.twt-gmbh.de
--------------------------------------------------------------------
Geschäftsführung: Dr. Dimitrios Vartziotis, Joachim Laicher (Stv.), Frank Beutenmüller (Stv.)
Registergericht: Amtsgericht Stuttgart, HRB Nr. 212778
Umsatzsteuer: ID-Nr.: DE147841145
--------------------------------------------------------------------

Back to the top