2011-03-10 14 views
7

Me gustaría lanzar una biblioteca java de código abierto. Pensé en usar mi apellido como nombre del paquete, pero me parece un poco raro. Me gustaría usar algo más neutral como 'open.libname'.¿Qué nombre de paquete debo usar para la biblioteca Java de código abierto?

¿Hay alguna recomendación sobre la nomenclatura de paquetes de código abierto java?

+0

Votantes cerrados: en realidad existe una respuesta autorizada para "¿Cómo debo nombrar mis paquetes Java?", Utilizando los nombres de dominio inverso descritos en las respuestas (consulte las notas al final de [Especificación del lenguaje Java sección 6.1] (https : //docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.1)). He votado para cerrar con un duplicado que proporciona una buena respuesta, pero cuya pregunta no coincide exactamente con esta: si conoce un duplicado mejor, utilícelo en su lugar. –

+0

posible duplicado de [paquetes Java com y org] (http://stackoverflow.com/questions/2125293/java-packages-com-and-org) –

Respuesta

10

Como dijeron los otros, se inicia con el nombre del paquete el nombre de dominio invertido:

Registre un dominio como myproject.org y luego use org.myproject.mymodule.

O, si no tiene su propio dominio, use el subdominio donde aloja el código, p. si aloja el código en myproject.sourceforge.net, use net.sourceforge.myproject.mymodule.

+1

'net.sf' es un buen prefijo corto, si [sourceforge.net] (http://sourceforge.net) se elige para el alojamiento. [sf.net] (http://sf.net/) es un dominio registrado por sourceforge.net. –

+0

Me gustó su sugerencia. En mi caso, sería awkard 'com.google.code.mylibrary' ya que no se trata de un lanzamiento de código oficial de Google.¿Alternativas? – Gatis

+1

@Gatis ¿Has visto mi sugerencia de 'com.googlecode' en mi respuesta? 'googlecode.com' apunta a' code.google.com'. –

4

La recomendación habitual es anteponer su paquete con el nombre de un dominio de su propiedad en el orden inverso: com.mydomain.mypackage. Como posee el dominio, las posibilidades de colisiones de nombres se reducen.

Además, una mejor opción para el nombre del paquete es algo que refleja la funcionalidad del paquete, en lugar de su propio nombre. ¿Qué usará cuando quiera lanzar su segunda biblioteca (y tal vez totalmente no relacionada)?

+0

Se refiere a algo como gatis.foo y gatis.bar para bibliotecas foo y ¿bar? – Gatis

+0

Sí. Si posee un dominio como gatis.com, podría usar los nombres de paquete 'com.gatis.foo' y' com.gatis.bar'. No se exceda, pero cuanto más pueda hacer que los nombres de sus paquetes sean únicos, menos posibilidades habrá de que surjan problemas de colisiones de nombres. (En muchos casos, la elección del nombre del paquete no es realmente importante, pero eso es diferente cuando se distribuye una biblioteca. Además, lugares como Android Market usan el nombre del paquete de la clase de lanzamiento para identificar aplicaciones.) –

0

Puede ser o no la respuesta que está buscando.

La convención común es revertir su nombre de dominio personal/compañía y anteponerlo a cualquiera que sea el nombre del paquete.

tanto, si su dominio es "www.feel.com" y el nombre del paquete es "mi paquete", entonces su nombre de paquete completo sería: com.feel.mypackage

+0

[Convenciones de nomenclatura de paquetes] (http://en.wikipedia.org/wiki/Java_package#Package_naming_conventions) son que todo está en minúsculas. –

+0

@Ted gracias por el recordatorio, recién actualizado. He estado alejado de Java por mucho tiempo ... –

3

¿Dónde aloja su proyecto? Cuando organizo un proyecto en Google Code, por ejemplo, tiendo a usar com.googlecode.project-name (parece grosero usar com.google.code.project-name). En realidad, no sé qué piensa Google al respecto, pero sigue el ejemplo de muchos proyectos de Sourceforge.net. Si tiene un dominio personal/corporativo, siga adelante y use ese, por supuesto.

Cuestiones relacionadas