是否有關於如何爲沒有自己的域名的開源項目命名包名稱空間的一般規則?沒有自己的域名的項目的Java包命名空間
名稱空間應該是唯一的,所以域被選擇來處理這個問題,但最終它並不重要,只要它們是唯一的。
現在,如果我有一個只能在GitHub上託管的項目,是不是好拿
com.github.username.projectname
,或者說相當令人難以接受的,因爲我用的是我並不真正擁有一個域名?
是否有關於如何爲沒有自己的域名的開源項目命名包名稱空間的一般規則?沒有自己的域名的項目的Java包命名空間
名稱空間應該是唯一的,所以域被選擇來處理這個問題,但最終它並不重要,只要它們是唯一的。
現在,如果我有一個只能在GitHub上託管的項目,是不是好拿
com.github.username.projectname
,或者說相當令人難以接受的,因爲我用的是我並不真正擁有一個域名?
在包名中有很多com.google.code和包含sourceforge的項目,所以命名空間有很多先例。
當谷歌倒閉並且所有這些項目移動到其他地方時,這將是有趣的......像Lycos .. – Perception
@Perception不會但是,真正打破任何東西。並不是說,將所有Sun站點遷移到Oracle,並且幾乎不可能找到規範和論壇帖子。 –
這很好。一般來說,挑選一些「可能」是獨一無二的,而且是針對項目的。
軟件包通常只有在爲消費而設計的庫時纔會發生衝突;如果軟件包僅用於項目內部,則重要程度要低得多。
我相信,擔心更多的是使用別人的域名而不是命名衝突。 –
@G_H因此答案的第一句話。 –
在您的示例中com.github
與您的代碼沒有直接關係。代碼存儲位置(又名託管)不重要,將來可能會更改。因此,我提出了一個純粹的項目特定的名稱一樣
org.projectname
甚至
projectname
因爲包名並不需要是一個域名。
噢,順便說一句:幾乎所有的命名約定都會優先考慮,而不僅僅是Java包名稱。但是,激烈地說:在歷史上,你也可以爲每一種謀殺找到優先。難道這只是因爲別人之前做過它才能讓人接受嗎?我不這麼認爲。
我可能會避免org.projectname;問題的前提是詢問「沒有自己的域名」。由於「projectname.org」不屬於該項目,這似乎相當具有誤導性,並可能最終成爲一個令人不快的法律戰場,或可能造成混淆。 – user314104
假設別人擁有域名projectname.org,他可以合法與你作戰 –
不要認爲這會是一個問題。 Apache和Codehaus項目似乎是這樣做的。 –
你的軟件包名稱不應該是唯一的,但它應該是你擁有的東西。假設你有一個電子郵件[email protected],你可以使用包作爲com.email.name,就像發生任何衝突一樣,你會因爲擁有電子郵件而獲勝。總之你的軟件包名稱應該是唯一的,你應該能夠證明你擁有它 –