Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Recommended process for generating p2 repository of external dependencies

Thanks a lot for this tip, Muru.

It's looking like the vast majority of Trent's solution (first 5 points) will be the main part of what we have to do. As for the last step, we will need to investigate how best to approach the distribution given our environment. That is, whether to migrate our Nexus (while potentially mirroring on a second Nexus in the interim, as suggested by Muru), or to have a simple HTTP site that somehow keeps "latest" with some historical versions in case.

Thanks again for the replies,

Irene

On 19-Nov-14 17:25, Muru Krishnamurthy wrote:
Irene,

Alternate option, you can create new box with later version of nexus and have main repository as mirror for your existing original one and have un-zip plugin installed on that  new one though. It is viable option but not really helping your problem though. Because you have manage two boxes instead of one. But that is  good short term plan as you trying to upgrade your nexus...

Thanks
muru

On Wed Nov 19 2014 at 8:11:57 AM Vigar,Barry <Barry.Vigar@xxxxxxxxxx> wrote:

Irene,

 

Unfortunately we don’t mix any manifest-first and pom-first projects in our reactor build, we’re using completely pom-first projects.

 

Regarding the POM dependencies consider configuration you mentioned for the Tycho target platform, we’re using that.

 

We did have to upgrade our nexus to make use of the plugin, but we tested for a while first on a throwaway VM to ensure the upgrade and plugin addition would go smoothly and do what we wanted.

 

- Trent V

 

From: tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Irene Wang
Sent: Wednesday, November 19, 2014 4:26 AM
To: tycho-user@xxxxxxxxxxx
Subject: Re: [tycho-user] Recommended process for generating p2 repository of external dependencies

 

Thanks for your input Trent, I did have a look at the Nexus Unzip plugin previously, but I was hesitant as our Nexus is currently not at the minimum level required to use this plugin, so  we would have to upgrade Nexus in order to try it out. However, if we do exhaust other potential avenues, we can look into doing this.

I read on this wiki page that if you use "POM dependencies consider":
"Tycho then checks each of these artifacts, and if the artifact is an OSGi bundle, it is added to the target platform."
https://wiki.eclipse.org/Tycho/Target_Platform#.22POM_dependencies_consider.22

This seems like it would be an ideal solution, to declare a dependency on a bundle artifact in the POM of a feature, except I think it's not working due to the limitation that we can't mix pom-first and manifest-first resolution in the same reactor?
https://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts#It_is_not_possible_to_mix_pom-first_and_manifest-first_projects_in_the_same_reactor_build

Any other ideas/options would be most welcome.

Cheers,

Irene

On 18-Nov-14 21:51, Vigar,Barry wrote:

Hey Irene,

 

What 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.

 

Hope this information is helpful, keep in mind this is not exactly how tycho advocates this process, this is just what works best for us.

 

- Trent V.

 

From: tycho-user-bounces@xxxxxxxxxxx [mailto:tycho-user-bounces@xxxxxxxxxxx] On Behalf Of Irene Wang
Sent: Tuesday, November 18, 2014 1:11 PM
To: tycho-user@xxxxxxxxxxx
Subject: [tycho-user] Recommended process for generating p2 repository of external dependencies

 

Hello,

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,

Irene

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.




_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tycho-user

 

_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tycho-user


_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tycho-user


Back to the top