Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How Artifactory manages repos

This morning I've spent some time downloading and experimenting with Artifactory, and have a few basic questions that I can't seem to find in the little helper tooltips as well as the official documentation.

  • Where does Artifactory store local repositories? I created one and can see it, deploy artifacts to it, etc....but I don't see it anywhere on my file system?
  • Is it possible for users to "export" a repository onto their local machines and have it replicated with the repo it exported from? (I'm trying to configure the notion of local vs hosted repositories for developers.)
  • Artifactory has a list of standard remote repositories (e.g. java.net.m1). If I set up a local repo with the same layout, is it possible (perhaps via a virtual repo) to "merge"/import the remote repo into my own (so long as there are no conflicts)?

I normally don't aggregate multiple questions into the same, but these are so closely-related I'd rather batch them together instead of cluttering SO with multiple nearly-identical questions. Thanks in advance!

like image 732
IAmYourFaja Avatar asked Dec 22 '22 01:12

IAmYourFaja


1 Answers

  • Artifactory uses Java Content Repository (JCR) standard to store artifacts. It is an abstraction above various storage implementations, which include filesystem, relational databases, etc. In any case, JCR manages the store by checksums (to reduce size and bandwith), so the repository is not directly browesable in the filesystem. The default implementation is storing the binaries on the filesystem (inside $ARTIFACTORY_HOME/data/filestore and the metadata in Derby DB.
  • I am not sure I understand why you want to replicate the whole repository to each and every machine? The dependency management tool (ivy, for example) downloads the artifacts on demand during the build if they aren't found in the local repository on the machine.
  • The predefined repositories are empty when you startup the Artifactory on the time. They are definitions of where to look for artifacts when requested by the dependency management tool.
like image 50
JBaruch Avatar answered Dec 23 '22 16:12

JBaruch