Mike Lupo
Mike Lupo

Reputation: 11

Should every application group have their own artifactory release/snapshot repo?

I want to setup Artifactory for a large company and I have a question:

Should every application group have their own set of snapshot and release repos so module collisions don't occur?

Upvotes: 1

Views: 87

Answers (2)

Javier C.
Javier C.

Reputation: 8257

The best practice for setting up maven repositories in large companies is to have a SNAPSHOT and a RELEASE maven repo for a functional domain, group of applications or similar.

Probably you need remote repos for external dependencies that are in Maven Central or in other external repositories, in this case, you need to create a remote repo to access these dependencies.

Also, you can have a virtual repo to group all of these local and remote repositories.

For, example:

  • You have a banking website for personals finances with these maven repos:

    • SNAPSHOT maven repo: personal-finance-local-SNAPSHOT

    • RELEASE maven repo: personal-finance-local-RELEASE

  • You have a banking website for enterprise finances with these maven repos:

    • SNAPSHOT maven repo: enterprise-finance-local-SNAPSHOT
    • RELEASE even repo: enterprise-finance-local-RELEASE
  • If you have external dependencies in Maven Central, you can create two remote maven repos: remote-SNAPSHOT and remote-RELEASE

Finally, create a virtual maven repo in Artifactory to group all maven repos that you want, for example, all of this example. You can have the repo virtual-maven-SNAPSHOT and the virtual-maven-RELEASE where you can have all the SNAPSHOTs or all the RELEASEs dependencies.

If you don't want to have a virtual repo for SNAPSHOTs and another for release versions you can have an unique virtual repo like: virtual-maven

Upvotes: 1

miskender
miskender

Reputation: 7948

If the company is really that big,(beside the thing you mentioned) it has probably internal release procedures. Like, to be able to release a product even internally some quality assurance protocols must be fullfiled.
In this case, different groups should not able to access other groups repositories without this qa protocols being fullied.
Private repositories for each software group is way to go in this case. And if a group's products can be used internally, It should have another repo for internal releases where others can access.

Upvotes: 0

Related Questions