Groups

Mikhail Gusarov edited this page Aug 11, 2015 · 25 revisions

Every jar uploaded to Clojars.org belongs to a group, which corresponds to the Maven groupId. Groups act as a namespacing mechanism so that multiple users can upload different forks of a project. They are also used as a simple access-control mechanism: only users that are members of a group can push jars to it. A new group is created automatically the first time someone pushes a jar to it.

By convention the Maven community uses a reversed domain name (like org.apache.maven) as the group name for a project to ensure uniqueness. For Clojars we think this just causes more problems and confusion than it solves. Instead we encourage your to pick unique, creative names for you projects. Note that you can follow the Maven convention if you really want to or need to for interoperability, we won’t stop you.

Canonical group

A canonical group is for the main, official version of a project. Often, the group name is simply the same as the project or jar name. In Leingingen you can simply specify the project name foobar as a shorthand for canonical version of a project foobar/foobar.

Personal groups

Each user automatically gets their own group named org.clojars.username. Personal groups are designed to hold things like throwaway alpha versions and forks of other projects. They’re long and ugly on purpose to encourage official releases to use canonical groups.

Creating a group

Groups are created automatically when you push a jar to the repository. Simply specify the name you would like in your Leiningen project.clj:

(defproject mygroup/myproject "1.0"
  ...)

or as the groupId in your Maven pom.xml:

<project>
    <groupId>mygroup</groupId>
    <artifactId>myproject</artifactId>
    <version>1.0</version>
</project>

You can’t create a group with the same name as an existing group or user.

Adding members to a group

You can add a member to a group by clicking the group’s name on your dashboard and selecting “add new member” at the end of the member lists. Enter the person’s username.