our development team is doing to get the p2 repositories we
want is the following :
- feature projects in which we group our plugin dependencies
together in the feature.xml and list the dependency versions
in the pom.xml for that project
these feature projects are contained within a ‘parent’
aggregate maven project whose pom lists the tycho plugins
and repositories to get our plugin dependencies from
- we build all our features sequentially with the
maven-invoker-plugin and run the package goal on them all
- after building the features, we run the package, then
deploy goal on the update site project (which builds and
deploys all the feature plugins in a p2-style repository to
our nexus box).
an update-site project which builds as eclipse-repository
and just points to the build state of all our feature
projects (target/site folder)
the update-site deploys to a regular Nexus maven repository,
but we have the Tycho Nexus Unzip plugin pointing to a
virtual repository which turns our deployed maven artifacts
(the update-site zip specifically) into an unzipped p2
repository that we’re consuming in targets and products.
this information is helpful, keep in mind this is not
exactly how tycho advocates this process, this is just what
works best for us.
We have some regularly changing external plugin dependencies
that are deployed to a Nexus repository. As I understand it,
in order for Tycho to be able to "see" and consume these
bundles, we would need to first generate p2 metadata for them.
I am having some trouble figuring out the best workflow for
systematically producing this p2 target platform, making it
available for the upcoming Tycho build steps, as well as any
subsequent local builds by developers.
I have considered using a separate Maven build to fetch the
POM dependencies, generate the metadata, then redeploy a
zipped p2 repository. However, I am not sure in which phase of
my Tycho build, if such a possibility exists, I could fetch
and "prepare" the zipped repository (i.e. unzip) before Tycho
does its dependency resolution.
Another possibility I have considered is having my official
build create the p2 repository and keep the latest version
somewhere accessible by HTTP on the same machine. This would
avoid unnecessary uploading and downloading to and from Nexus,
though we would not have much versioning functionality then.
Is there a recommended solution for handling such cases where
systematically processing external bundles is necessary?
Thank you very much in advance,
CONFIDENTIALITY NOTICE This message and any included attachments
are from Cerner Corporation and are intended only for the
addressee. The information contained in this message is
confidential and may constitute inside or non-public information
under international, federal, or state securities laws.
Unauthorized forwarding, printing, copying, distribution, or use
of such information is strictly prohibited and may be unlawful.
If you are not the addressee, please promptly delete this
message and notify the sender of the delivery error by e-mail or
you may call Cerner's corporate offices in Kansas City,
Missouri, U.S.A at (+1) (816)221-1024.