Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Development Resources/HOWTO/The Eclipse Code Namespace Policy"
(→Maven Repositories) |
(→Maven Repositories) |
||
Line 36: | Line 36: | ||
===Maven Group Ids=== | ===Maven Group Ids=== | ||
− | + | Per [http://maven.apache.org/guides/mini/guide-naming-conventions.html Maven naming conventions], the Maven group id '''must''' follow the standard reverse DNS naming convention: | |
− | org.<forge> | + | org.<forge>.<short-name> |
Where: | Where: | ||
* ''forge'' is the short name of the hosting [[Forges|forge]], e.g. "eclipse", "locationtech", or "polarsys"; | * ''forge'' is the short name of the hosting [[Forges|forge]], e.g. "eclipse", "locationtech", or "polarsys"; | ||
− | + | * "short-name" is the short name of the project (the name used in IPZilla, and the in project information pages] | |
Examples: | Examples: | ||
− | * <code>org.eclipse</code> | + | * <code>org.eclipse.egit</code>, <code>org.eclipse.birt</code> |
− | * <code>org.locationtech</code> | + | * <code>org.locationtech.udig</code>, <code>org.locationtech.geomesa</code> |
− | * <code>org.polarsys</code> | + | * <code>org.polarsys.reqcycle</code>, <code>org.polarsys.cotsaq</code> |
For discussion, please see [https://locationtech.org/bugs/show_bug.cgi?id=28]. | For discussion, please see [https://locationtech.org/bugs/show_bug.cgi?id=28]. |
Revision as of 14:42, 10 November 2014
Eclipse projects must carefully manage their namespaces in order to help identify the producer of components and avoid namespace collisions.
Some of the content here is presented in the form of guidelines ("should"), and some in the form of rules ("must"). In general, it's about being a good citizen and playing well with others. We believe/hope that exceptions to the rules are rare; exceptions to rules must be approved by the Project Management Committee and the EMO.
Contents
Languages
Java Package Names
Java package naming conventions are well-established and so Java package names must take the standard reverse DNS form:
org.<forge>.<shortname>.<component>.*
Where:
- forge is the short name of the hosting forge, e.g. "eclipse", "locationtech", or "polarsys";
- shortname is the short name of the project (i.e. the last segment of the project id), e.g. "dali", "egit", "udig"; and
- component is project-specific
Multiple component segments are permitted.
Examples:
-
org.eclipse.emf.core
,org.eclipse.emf.edit
,org.eclipse.emf.edit.ui
; and -
org.locationtech.udig.resources
Java package names use the "flat" or "short" project name in the third segment; they should not include, for example, the name of the top-level project or any parent/container project.
- e.g.
org.eclipse.graphiti.core
, notororg.eclipse.modeling.mdt.graphiti.core
.org.eclipse.mdt.graphiti.core
Scala Package Names
TBD
Packaging/Distribution
OSGi Bundle Names
OSGi Bundle names must follow the same rules as Java Package Names.
Maven Repositories
These guidelines/rules apply primarily for Eclipse Foundation-hosted Maven repositories. We believe that it is in the best interests of the broader community to consistently apply these guidelines/rules outside of that scope as well.
Maven Group Ids
Per Maven naming conventions, the Maven group id must follow the standard reverse DNS naming convention:
org.<forge>.<short-name>
Where:
- forge is the short name of the hosting forge, e.g. "eclipse", "locationtech", or "polarsys";
- "short-name" is the short name of the project (the name used in IPZilla, and the in project information pages]
Examples:
-
org.eclipse.egit
,org.eclipse.birt
-
org.locationtech.udig
,org.locationtech.geomesa
-
org.polarsys.reqcycle
,org.polarsys.cotsaq
For discussion, please see [1].
Maven Artifacts
Maven Versions
Java Archive (JAR/WAR/EAR) Names
TBD
This page is moderated by the EMO.