¿Cómo *realmente* asegurar que los nombres de mis paquetes de Java sean únicos?

La forma estándar de evitar conflictos de nombres de paquetes en Java es usar la convención de dominio inverso com.[mycompany].[rest-of-the-package-name]. Esto funciona de manera brillante... si uno posee el dominio [mycompany].com.

Sin embargo, hay varios desarrolladores individuales (o estudiantes) que:

  • No (o no puede permitirse) poseer un dominio
  • Todavía evoca algunos nombres de paquetes con la esperanza de que sean únicos.

Esto por sí solo introduce la posibilidad de conflictos de paquetes.

Además, suponga que soy propietario de [mycompany].com. ¿Qué impide que un desarrollador cree una biblioteca con el mismo prefijo de paquete que el mío y la distribuya? AFAIK, no existe un vínculo legal con respecto a los nombres de los paquetes ("DEBE poseer el dominio que ha utilizado en su paquete Java"). Sin mencionar que esta acción por parte del desarrollador podría no ser intencional (¿cuántos de nosotros rastreamos la web buscando un nombre de dominio inexistente antes de nombrar nuestros paquetes?).

Aún más, incluso si tengo un nombre de dominio, puede o no ser adecuado para usarlo como nombre de paquete (mi nombre de dominio podría incluir guiones, o podría ser tan largo que, aunque es un nombre de paquete legal, aún podría hacerlo impracticable).

Entonces mi pregunta es: ¿Cómo puedo realmente hacer que el nombre de mi paquete Java sea único?

preguntado el 22 de mayo de 12 a las 14:05

Preocúpese menos por los nombres de los paquetes y más por las buenas prácticas de software. ¡Siempre puedes cambiar el nombre de los paquetes! -

@Jivings: sí, lo son, pero ¿cómo evitaría que otros usen su dirección de correo electrónico en el nombre de un paquete? -

puede usar (permitirse) una cuenta de github.com y también es una buena manera para que otros encuentren su paquete com.github.username.package -

@Vlad Fue en respuesta al problema de los estudiantes. -

@Vlad, ¿cómo evita que las personas usen su dominio en el nombre de un paquete? Ooooh.. Sí... Realmente no puedes. -

2 Respuestas

No puede garantizar absolutamente que los nombres de sus paquetes sean únicos a nivel mundial. Como mencionó, no hay nada que impida que otra persona use un nombre de paquete idéntico, independientemente de quién sea el propietario del nombre del paquete. No hay un índice autorizado de nombres de paquetes en uso.

contestado el 22 de mayo de 12 a las 14:05

Veo dos respuestas a tu problema:

  • Haz de tu proyecto de estudiante un SourceForge paquetes de proyectos y nombres net.sf.myproject (o use cualquier host gratuito similar, como GitHub). Tal nombre de paquete es que otros no debe ser utilizado por otros, aunque no hay garantía como Matt Hurne señala
  • Aparte de eso, si no puede o no quiere pagar un dominio, es poco probable que su programa sea utilizado por una amplia audiencia de todos modos, y puede nombrar sus paquetes como quiera.

contestado el 23 de mayo de 17 a las 11:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.