2011-10-25 20 views
11

Esiste una regola generica generale su come denominare gli spazi dei nomi dei pacchetti per i progetti open source senza un dominio proprio?Spazio dei nomi del pacchetto Java per progetti senza dominio

Gli spazi dei nomi devono essere unici, quindi i domini sono stati scelti per occuparsene, ma alla fine non importa, purché siano unici.

Ora, se ho un progetto che è ospitato solo su GitHub, è bene prendere

com.github.username.projectname 

o è che invece di buon occhio, perché io uso un dominio che non mi possiedo?

+0

Non pensare che sarebbe un problema. I progetti Apache e Codehaus sembrano fare così. –

+0

il nome del pacchetto non dovrebbe essere solo univoco, ma dovrebbe essere qualcosa che possiedi. Supponiamo che tu abbia una mail [email protected], puoi usare il pacchetto come com.email.name come se si verificasse un conflitto, devi vincere perché sei il proprietario dell'e-mail. In breve, il nome del pacchetto dovrebbe essere unico e dovresti essere in grado di dimostrare che lo possiedi. –

risposta

8

Ci sono un certo numero di com.google.code e progetti con sourceforge nel nome del pacchetto, in modo che namespacing abbia un sacco di precedenti.

+2

Sarà divertente quando Google fallirà e tutti quei progetti si trasferiranno da qualche altra parte ... come Lycos .. – Perception

+5

@Perception davvero rompere qualsiasi cosa, però. Non come, diciamo, spostando tutti i siti Sun su Oracle e rendendo praticamente impossibili le specifiche e i post sui forum. –

3

Va bene. In generale, scegli qualcosa che "probabilmente" sia unico e specifico del progetto.

I pacchetti generalmente si scontrano solo quando sono una biblioteca progettata per il consumo; se i pacchetti sono solo per uso all'interno del progetto, conta molto meno.

+0

La preoccupazione è più sull'uso del nome di dominio di qualcun altro piuttosto che sulla denominazione delle collisioni, credo. –

+1

@G_H Quindi la prima frase della risposta. –

8

Nel tuo esempio com.github non ha alcun rapporto diretto con il tuo codice. Dove questo codice è memorizzato (conosciuto anche come hosted) non ha importanza e potrebbe cambiare in futuro. Perciò io propongo un nome specifico puramente progetto come

org.projectname 

o anche

projectname 

dal nome di un pacchetto non ha bisogno di essere un nome di dominio.

Oh, a proposito: troverete la precedenza per quasi tutto e tutto ciò che riguarda le convenzioni di denominazione - non solo per i nomi dei pacchetti Java. Ma drasticamente parlando: nella storia puoi trovare la precedenza anche per ogni tipo di omicidio. Questo in qualche modo lo rende accettabile solo perché qualcuno lo aveva già fatto prima? Io non la penso così

+0

Probabilmente eviterei org.projectname; la premessa della domanda riguarda "nessun nome di dominio". Poiché "projectname.org" non è di proprietà del progetto, sembra abbastanza fuorviante e potrebbe finire per essere uno spiacevole campo di battaglia legale, o una possibile fonte di confusione. – user314104

+0

supponiamo che qualcun altro possegga il dominio projectname.org, che possa combattere legalmente con te –

Problemi correlati