You are here: Foswiki>IN Web>Services>Buildsystem>ArtifactNamingGuideline (13 Apr 2020, JuttaFitzek)Edit Attach

Artifact Naming Guideline

All Artifacts produced at gsi should follow this guideline. This helps to find them in the Repository and prevents clash of names on the file system, this is most important for jar files.

The groupId of an artifact must contain as a minimum de.gsi.$PROJECTDIVISION.$DEPARTMENT if the department would like to extend it with e.g. the group name that is of course possible: de.gsi.$PROJECTDIVISION.$DEPARTMENT.$GROUP

Examples for (former-) bel groups are and

In maven a single item that can be built is called "Artifact". When programming java (and some other languages) it is usually the case that the name of a library (.JAR) for an artifact is equal to the artifacts name. So it is reasonable to put some effort into the naming of an artifact that is used in the creation of library files. Generic names should be avoided to prevent name clashes. Even if it sounds strange because of the name doubling, if generic names are used they must be prefixed with e.g. department and/or group to make them unique.
Lets say several departments (CSCO and LOBI) and groups in one of this departments (AP and FE) have a project with some commonly used code "commons". By prefixing the artifact name a name clash can be prevented:
  • cscoap-commons(.jar) – Commonly used code of control systems/applications group
  • cscofe-commons(.jar) – Commonly used code of control systems/front end group
  • csco-commons(.jar) – Commonly used code of control systems
  • lobi-commons(.jar) – Commonly used code of beam diagnostics
It is suggested to prefix the artifacts with the department name. For artifact names that are already quite unique using a common prefix should be enough.


Naming by department:
  • pbsp-cycledoc.jar (department primary beams / system planning, project CYCLEDOC)
  • loao-app-dpo.jar (department linac and operations / accelerator operations, project APP, module DPO)
Naming by department and group:
  • cscofe-devacc(.jar) -> For the artifact devacc (Device Access) of the control system frontend group
  • cscoap-devacc(.jar) -> A similar artifact developed by the control system application group (and depending on the one of the frontend group)
If you want to add more information to the artifact name so more information can be deduced from the file name:
  • cscoap-japc-ext-devacc-eqmodparser(.jar) - CSCO Department, AP Group, Project JAPC, JAPC Extension, Extension devacc, Equipment Model Parser
Or less if you think the naming is already quite unique (ZKS - Zugangskontrollsystem project):
  • zks-app-remotecontrol
  • zks-app-useradministration
  • zks-app-selection
  • zks-client
  • zks-commons
  • zks-dbaccess
  • zks-uwz-protocol

App group naming guideline since end of 2019


BEL Application

Known Projects are opera (VMS to linux migration), zks (Zugangskontrollsystem), japc.

BEL Frontend

Known Projects are devacc (Devicemanager, devman), biorem (the java gui for the biorem)
Topic revision: r12 - 13 Apr 2020, JuttaFitzek
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback