pom groupid explained basedir artifactid artefact and maven naming-conventions nexus artifactory archiva

groupid - Prácticas recomendadas para nombrar convenciones en ArtifactID de Maven(¿existen restricciones?)



maven repository (2)

Argumentaría que groupId es como el nombre del paquete en Java donde artifactId es similar al nombre de la clase (bueno, no realmente) pero creo que existe una relación con el nombre de la clase. En Maven usualmente le das un nombre a un módulo / proyecto que es en particular el artifactId.

Además encontré algunos consejos sobre el artefacto here .

Mi equipo es nuevo en Maven y no hemos podido encontrar una guía definitiva sobre la selección de ID de artefactos para nuestros proyectos.

Sé que la Guía de convenciones de nomenclatura dice que los ID de artefactos deben ser

"cualquier nombre que quieras con letras minúsculas y sin símbolos extraños"

pero algunas personas de mi grupo quieren usar el estilo de nombre de dominio inverso tanto para GroupID como para ArtifactIDs.

Basándome en las directrices mencionadas más todos los ejemplos que he visto en el repositorio central, no creo que tenga sentido tener ID de artefactos de estilo de dominio inverso, pero no puedo saber si hacerlo es realmente inválido o simplemente mal visto. . Recuerdo vagamente que leí algo acerca de que varios administradores de repositorios no pueden tratar de manera efectiva con IDs de artefactos que contienen caracteres de punto (.) Pero no recuerdo dónde lo leí y no puedo encontrarlo ahora.

¿Cuáles son las reglas, si las hay, sobre los caracteres permitidos en un ArtifactID de Maven?


Como comienzo aquí algunas publicaciones que tratan sobre este tema:

Punteros

¡Y en !

Entonces, le sugeriría que NO use groupId en su artifactId. Esto es redundante;).

Cito los documentos de sonatype que parecen ser los más relevantes para su pregunta:

Convenciones de nombre de Sonatype

groupId identificará su proyecto de forma única en todos los proyectos, por lo que debemos aplicar un esquema de nombres. Tiene que seguir las reglas de nombre del paquete, lo que significa que debe ser al menos como un nombre de dominio que usted controla, y puede crear tantos subgrupos como desee. p.ej. org.apache.maven, org.apache.commons Una buena manera de determinar la granularidad de groupId es usar la estructura del proyecto. Es decir, si el proyecto actual es un proyecto de múltiples módulos, debe agregar un nuevo identificador al groupId del padre. p.ej. org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

artifactId es el nombre del jar sin versión. Si lo creó, puede elegir el nombre que desee con letras minúsculas y sin símbolos extraños. Si es un frasco de un tercero, debes tomar el nombre del frasco tal como está distribuido. maven, commons-math

Versión si la distribuye, entonces puede elegir cualquier versión típica con números y puntos (1.0, 1.1, 1.0.1, ...). No utilice fechas, ya que generalmente se asocian con compilaciones SNAPSHOT (nocturnas). Si se trata de un artefacto de un tercero, debe usar su número de versión, sea lo que sea, y por extraño que parezca. 2.0, 2.0.1, 1.3.1

Entonces, usar el DNS inverso en su ID de grupo y su nombre de paquete es una buena práctica. Utilízalos de nuevo en artifactId no.