Should we use Nexus or Artifactory for a Maven Repo?

后端 未结 12 1538
悲&欢浪女
悲&欢浪女 2020-12-07 07:28

We are using Maven for a large build process (> 100 modules). We have been storing our external dependencies in source control, and using that to update a local repo.

<
相关标签:
12条回答
  • 2020-12-07 07:57

    Artifactory supports both file-system and database storage backends. Storage is checksum based and identical binaries are stored only once, no matter how many times they appear in the repo, which makes Artifactory more efficient storage-wise. Move and copy are also very cheap because of this architecture (in Nexus there's no REST for move/copy - you have to move stuff on the file system, then run corrective actions on the repo to let it know content has changed).

    Another important differentiator is Artifactory has unique integration with Hudson and TeamCity for capturing information about deployed artifacts, resolved dependencies and environment data associated with build runs, which provides full build traceability.

    0 讨论(0)
  • 2020-12-07 07:58

    I don't know about Artifactory but here are my reasons for using Nexus:

    • Dead simple install (and since 1.2, dead simple upgrade, too)
    • Very good web UI
    • Easy to maintain, almost no administrative overhead
    • Provides you with RSS feeds of recently installed, broken artifacts and errors
    • It can group several repositories so you can mirror several sources but need only one or two entries in your settings.xml
    • Deploying from Maven works out of the box (no need for WebDAV hacks, etc).
    • it's free
    • You can redirect access paths (i.e. some broken pom.xml requires "a.b.c" from "xxx"). Instead of patching the POM, you can fix the bug in Nexus and redirect the request to the place where the artifact really is.
    0 讨论(0)
  • 2020-12-07 08:06

    I made some research recenly about Artifactory 2 and Nexus 1.3. I'll list here the main differences I found:

    • Artifactory stores metadata and optionally files in DB, Nexus writes directly to file system. There are pros. and cons. for each approach. DB supports transactions, while in FS stored files can be accessed directly.
    • Artifactory has higher system requirements especially for disk space.
    • Artifactory has LDAP support, while Nexus has it only in paid version. On the other hand free LDAP plugin for Nexus is available on Google code.

    The most complete comparison: http://binary-repositories-comparison.github.io/

    0 讨论(0)
  • 2020-12-07 08:07

    If you need the "Pro" features of either (e.g. Staging repos, artifact promotion, NuGet), , then you need to consider the different pricing models, which are displayed on their websites.

    • http://www.jfrog.com/home/v_pricing
    • http://www.sonatype.com/nexus/purchase

    In summary:

    • Artifactory Pro
      • you pay per server
      • you can pay more for increased service hours
    • Nexus Pro
      • you pay per seat, i.e. how many developers downloading artifacts
      • support service is Mon-Fri 0800-2000 ET only, no matter what you pay

    No matter how many users you have, Nexus Pro offers a support service that's broadly equivalent to Artifactory's $7,450/year "Silver Value Pack".

    $7,450/year will buy you approximately 67 Nexus Pro seats (1-50 @ $108, the rest @ $120).

    On price and support alone then, Nexus Pro makes sense until you get to 67 users, at which point Artifactory becomes the cheaper option.

    If you're doing all the support in-house; however, that magic point is about 23 users (Artifactory's most basic support offering is $2,750/year).

    0 讨论(0)
  • 2020-12-07 08:08

    All politics/religion aside, licensing makes a difference for some organizations.

    Nexus is GPL now AGPLv3 and now Eclipse Public License (EPL).

    Artifactory is Apache licensed LGPLv3 licensed as of version 2.1 of the product.

    You may also want to consider Archiva, just for comparison's sake. It's Apache 2.0 licensed.

    0 讨论(0)
  • 2020-12-07 08:08

    Hmmm...my experience with artifactory is awful...but I'm a relative newbie so take it with a grain of salt. My overall complaint is that jar files recently uploaded to Artifactory do not seem to get indexed right away - as in for hours - and there does not seem to be a good way to force it. I've tried various things that appeared as if they should have worked, but didn't. I have been working with m2eclipse, adding dependencies to a project that i'm converting from ant. When I try to add a jar that I have just added to artifactory, I expect it to show up as a choice in the selector but it does not.

    a coworker told me that they had installed nexus and so far they like it...but I can't vouch for it yet. I'm about to install that on a Linux box as soon as IT can find me one.

    0 讨论(0)
提交回复
热议问题