{"id":15857,"date":"2019-04-11T12:17:23","date_gmt":"2019-04-11T12:17:23","guid":{"rendered":"https:\/\/blog.taragana.com\/?p=15857"},"modified":"2019-04-11T12:50:02","modified_gmt":"2019-04-11T12:50:02","slug":"recommendation-private-corporate-maven-repository-sonatype-nexus-or-jfrog-artifactory","status":"publish","type":"post","link":"https:\/\/blog.taragana.com\/recommendation-private-corporate-maven-repository-sonatype-nexus-or-jfrog-artifactory-15857","title":{"rendered":"Recommendation: Private \/ Corporate Maven Repository: Sonatype Nexus or jFrog Artifactory"},"content":{"rendered":"\n
The solution is to use a repository manager like Nexus or Artifactory. I prefer open source versions to start with. <\/p>\n\n\n\n
So what are the good choices?<\/p>\n\n\n\n
I downloaded the open source version and tried installing it. It was slow<\/strong>, very slow and confusing. There were myriad errors, the installation was complicated. In short, if I found it confusing inspite of copious documentation), you are very likely to. After couple of hours I decided it was not worth the pain.<\/p>\n\n\n\n Downloading was simple, running it was simpler. I installed it as systemd service. Only changes I had to do were:<\/p>\n\n\n\n Only few changes were required to get Nexus up and running.<\/p>\n\n\n\n It works well with gradle and well documented. Best part is that it is significantly faster and satisfies all my requirements.<\/p>\n\n\n\n The winner, for me, is Sonatype Nexus. It is fast, free, less cumbersome to install, setup and use. The default repositories serve my needs with minor tweaks.<\/p>\n\n\n\n Could the slowness of Artifactory be due to https to http conversion as I use haproxy for SSL termination?<\/p>\n\n\n\n That does not seem to be the case because I could load it properly, just slow.<\/p>\n\n\n\n OTH: Nexus was not loading properly till I passed X-Forwarded-Proto<\/strong> header.<\/p>\n","protected":false},"excerpt":{"rendered":" Requirements: I am writing several reusable libraries which need to refer each other in myriad ways, each may be worked upon by different developer. I don’t want to create a jumbo project with sub-modules where access control is a pita. I don’t want the repository to be publicly accessible. There should be fine-grained access control […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,9,12],"tags":[156,144,159,155,157],"_links":{"self":[{"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/posts\/15857"}],"collection":[{"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/comments?post=15857"}],"version-history":[{"count":4,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/posts\/15857\/revisions"}],"predecessor-version":[{"id":15861,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/posts\/15857\/revisions\/15861"}],"wp:attachment":[{"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/media?parent=15857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/categories?post=15857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.taragana.com\/wp-json\/wp\/v2\/tags?post=15857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}Sonatype Nexus<\/h3>\n\n\n\n
http-request set-header X-Forwarded-Proto https<\/li><\/ul>\n\n\n\nConfiguration<\/h4>\n\n\n\n
Winner?<\/h3>\n\n\n\n
Postscript<\/h2>\n\n\n\n