Proxy repository

As you can populate repository, you can also proxy an "external" repository.

It means that the artifacts stay on the remote repository, Apache Karaf Cave generates the OBR metadata in the local repository for the remote artifacts:

karaf@root()> cave:repository-proxy my-repository http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.commons-lang/
Note

The Cave repository will only handle the OBR metadata, it doesn’t monitor the remote repository. It means that you have to call the cave:proxy-repository command each time the remote repository change (new artifacts, etc).

Note

A best practice is to create a Cave repository dedicated for each proxied repository.

The cave:proxy-repository command accepts the filter option, as the cave:populate-repository command:

karaf@root()> cave:repository-proxy --filter .*joda-time-2.* my-repository http://repo2.maven.org/maven2/joda-time/joda-time