0
votes

I try to use Nexus Repository Manager OSS 2.14 as a proxy for some Eclipse P2 repositories, but I can't get it work.

I followed Documentation Nexus Repository Manager 2.14:

Nexus Repository Manager Pro has P2 support installed by default. Prior to any usage in Nexus Repository Manager OSS the Nexus P2 Bridge Plugin and the Nexus P2 Repository Plugin need to be installed. You can download the bundle.zip files for your specific version from the Central Repository:

  • Nexus P2 Repository Plugin
  • Nexus P2 Bridge Plugin

Extract the two files into sonatype-work/nexus/plugin-repository and restart the repository manager.

and installed the two plugins.

To create a new proxy P2 repository I followed Documentation Nexus Repository Manager 2.14:

  1. Click Repositories in the Views/Repositories menu.
  2. Click the Add.. button above the list of repositories, and choose Proxy Repository from the drop-down of repository types.

  3. In the New Proxy Repository window,

    a. Select P2 as the Provider.
    b. Supply a Repository ID and a Repository Name.
    c. Enter the URL to the remote P2 repository as the Remote Storage Location.
    d. Click Save.

Following Nexus Repository Manager - Tutorial as a test I installed Eclipse PMD plugin with the repository URL of my Nexus and it worked fine.

enter image description here

But I can't see the stored binaries of the plugin, only the metadata.

browse storage

If I look in the directory, I see only metadata:

file system

Where are my binaries? Did I something wrong?

1

1 Answers

0
votes

I found the reason: The plugin was already in the bundle pool:

Bundle pooling

Prior to p2, each Eclipse application had its own private plugins directory where the application's software was kept. This had the drawback that systems with two or more Eclipse-based applications installed ended up with significant duplication of software and other artifacts. Furthermore, the common pieces had to be upgraded separately for each application, often resulting in slow downloads of software already available elsewhere on the local system.

To escape from this duplication problem, p2 natively supports the notion of bundle pooling. When using bundle pooling, multiple applications share a common plugins directory where their software is stored. There is no duplication of content, and no duplicated downloads when upgrading software.

so Eclipse didn't download the binaries from Nexus. It downloaded only the metadata.

Removing the plugin from the bundle pool (under <USER_HOME>/.p2/pool) resolves my problem. After reinstalling the plugin, Nexus got the binaries.