Skip to end of metadata
Go to start of metadata
Table of Contents

Note: This space is for Artifactory 2.0.
Take me to the latest version!

What issues does Artifactory resolve?

We found out that, when working with Maven artifacts, most organizations need to have a reliable artifacts proxy service in place, for the following reasons:

  1. The public Maven repositories can become unreliable from time to time (down, highly busy, slow...). It is also not uncommon for broken or wrong artifacts to appear on these repositories. This unexpected behavior can fail the build and/or lead to non-reproducible build results, which for most enterprises is a must.
  2. It is expensive and inefficient for every developer inside the same organization to go and retrieve remote artifacts that are shared by nature.
  3. Without a mesh of proxies, there is no easy way to automatically share artifacts in multi-site development environments.
  4. There is often a need to globally enforce and control the repositories and the artifacts included in a build in terms of: security, licensing, include/exclude patterns (do not look for in-house artifacts on repo1), etc. This can only be achieved by a global proxy.
  5. As part of a normal build Maven will send update queries to its public repositories, even for organization internal artifacts. Such query requests going over the internet may reveal sensitive information about your ongoing projects, which the organization would like to keep private. Using Artifactory's include/exclude patterns allows you to avoid internal artifacts from being queried on the internet.

How does Artifactory work?

Behind the scenes, Artifactory uses a JSR-170 compliant Java Content Repository (JCR) for storage, using the Apache Jackrabbit implementation. This natural fit makes it extremely easy to manage fully indexed and searchable metadata and to provide full repository coherence with extended features such as security, transacted operations, auditing, locking, etc.
Artifactory's rich Ajax web UI is based on the excellent Apache Wicket web framework.
The standard standalone distribution is using the Jetty servlet container for quick out-of-the-box startup, but it can just as easily be deployed on any servlet container.

Does Artifactory Use WebDAV for Communicating with Maven?

No. Artifactory is WebDAV friendly and is compatible with many WebDAV clients, but it doesn't use WebDAV or the Jackrabbit WebDAV implementation at all for communication (though some competitor FUD blogs suggest that, without getting their facts right). We are using strictly lightweight HTTP/REST communication, like the one used by the default Maven HTTP wagon.

With a database used for artifact storage, won't I be loosing control over my repository?

On the contrary. Using JCR and a DB for storage not only offers a superior technical solution, but also allows for greater control over your repository. Artifactory provides browsing, deploying and undeploying through an Ajax web UI which allows doing all common administrative operations in a security-aware fashion.
Additionally, if you wish to import or export your repositories to the file system or execute scheduled backups of your repositories to regular file system directories, Artifactory allows you to do that.

After using Artifactory with Derby DB for storing my artifacts will I be forced to use Artifactory forever?

Of course not. This is why we created the Import/Export/Backup features, to allow Artifactory users to create a standard file-system based Maven 2 repository layout of the Artifactory DB repositories.

Does Artifactory provide mirroring? How do I achieve mirroring with Artifactory?

No. Artifactory uses controlled caches of remote repositories, not mirroring. Caches are populated lazily upon request, so it is only when Maven starts hitting it with requests that caches start to fill up with artifacts. Indexing is done completely by Jackrabbit and, unlike with mirroring, is up to date immediately. When following the standard practice of running continuous builds using a build server, the Artifactory caches would normally be repeatedly synchronized, achieving similar effect to that of mirroring.

Under what license is Artifactory distributed?

Artifactory uses the friendly Apache License, Version 2.0.

How can I report a bug or ask for new features?

By submitting a report to our JIRA.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels