[EMAIL PROTECTED] wrote:
Let me clarify that httpclient is just an example.
Making it and my other 3rd party artifacts to be OSGi bundles is the easy
part.
I've planned to deploy them then to my group repository.
However, for my internally developed artifacts it's a different story.
All of them are Eclipse plugins.
I want to build them through a CI framework (probably Continuum) and
deploy them also to the group repository.
Then, members of my team can work on individual plugins and the plugins'
OSGi dependencies
(as expressed in MANIFEST.MF) are resolved from the group repository.
That's my plan in a nutshell. Having a target platform in this picture
where a base set of plugins are resolved from is fine, too.
Actually, this is the primary use case for "target platform management"
feature we're adding to tycho and I would be very interested to know how
well (or not so well) it works for your projects. There is no user
documentation yet, but here is relatively detailed description of how
this works.
In the just announced tycho 0.3.0-DEV-1756, build target platform can be
specified using dependencyManagement pom.xml section. It is possible to
specify path to local eclipse installation using dependency with system
scope, but more interestingly, it is also possible to specify
eclipse-feature and eclipse-plugin artifacts using maven
groupId/artifactId/version coordinates.
At build time, tycho will resolve all eclipse-feature artifacts
(transitively) and eclipse-plugin artifacts (non-transitively) from
maven repositories and target platform used during the build will
include features/bundles both from local eclipse-installation and from
maven repositories. Build results can be installed/deployed into maven
local/remote repositories by invoking regular "install" or "deploy"
build phases.
So in your scenario, CI framework can run "tycho/bin/mvn deploy" for set
of related projects and everything is expected to work "the maven way"
assuming dependencyManagement is configured properly. We are using
Hudson, btw, but I guess Continuum should work too.
You can see this in action in integration test [1]. The test first runs
build01 to install a feature and couple of bundles into local maven
repository. Then it runs build02 which uses the feature and bundles from
the first build. You can see specification of build02 target platform in
pom.xml [2].
Please note that -Dtycho.targetPlatform OVERRIDES target platform in
pom.xml. In other words, target platform specified in
dependencyManagement sections will be ignored if -Dtycho.targetPlatform
is specified on command line or via settings.xml/pom.xml. (I should have
added a warning, I guess)
Also note that there is no PDE integration yet. We can talk about using
tycho build target platform in PDE if you're happy with how it works on
command line.
[1]
http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-its/projects/tycho164/
[2]
http://svn.sonatype.org/m2eclipse/tycho/trunk/tycho-its/projects/tycho164/build02/pom.xml
but I am open for suggestions
about how to make consumption of plain JARs in tycho builds easier.
I wouldn't cater to consuming plain Jars in general with Tycho.
I would target OSGi bundles only instead.
If there was a way to map an OSGi dependency into a Maven coordinate,
and Maven/Tycho was able to resolve the OSGi dependency from a Maven
repository,
that might make the consumption of OSGi bundles easier.
I think I know what you mean and I might have some ideas how to
implement it, although not necessary exactly as you describe it here. I
can't be more specific at the moment, but stay tuned ;-).
--
Regards,
Igor
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email