2012-09-21 64 views
32

我無法在SO上找到Q/A,它回答了我的確切問題,所以我想我會發布它並查看返回的內容。沒有域關聯的java包名稱約定是什麼?

至於命名約定也適用於Java包,我明白,這應該是反向域名:com.whatever.stuff和我得到沒有混合的情況下,連字符,關鍵字等

我的規則還閱讀了Java語言規範的第7.7節(唯一包名稱)。據我所知,從Java規則是使用反向域名以保證唯一性......如果你沒有一個,去得到一個:

You form a unique package name by first having (or belonging to an organization that has) an Internet domainname, such as sun.com. - 第7.7節

所以,如果我沒有興趣爲域名淘金,我不屬於我可以揹負的名字的公司,是否有任何我缺少的命名規則應該遵循的部分?我想我可以在這一點上以任何獨特的名字命名它,但我只是想知道我是否錯過了任何東西。

注意:我想發佈我的軟件包供其他開發者使用,所以我不想只做一些在我的系統上工作的東西,但是如果可能的話,更標準的東西。

我添加了android標籤,因爲我要編寫的java包將用於Android應用程序,不確定是否有來自android開發人員的不同意見。

回答

34

如果你要分發很多東西,我真的會建議你得到一個域名。另一種選擇是使用您的電子郵件:例如[email protected]將變成com.gmail.bob。這比使用域名不太常見,但仍然由一些域名完成,並且仍然保證唯一性。

+4

不錯!我喜歡那個 – gtgaxiola

+0

+1這實際上是一個非常好的主意,我不認爲要使用我的電子郵件帳戶。我只打算分發2個軟件包,而不是很多......所以,也許這就是我要做的。 – Mike

+0

+1如果您打算分發您的東西,那麼獲取域名是個不錯的主意。 – Brian

1

在專業環境中,約定是使用反向域。在與自己關聯更多的環境中,您可以使用org.projectname.packagename.*

這是一個慣例,而不是硬性規定。你可以自由使用你喜歡的任何域名命名風格。

23

一個慣例是使用主機提供商的域名,例如,

com.github.myrepositoryname 
net.sf.sourceforge.myproject 
com.googlecode.myproject 

優點:

缺點的簡單方法:

  • 如果你決定改變供應商,你要麼有哪些超出過期封裝結構,或者你介紹後向兼容的變化保持一致源通過新的提供商
+1

+1這是一個很好的觀點,由於缺點,我會用它作爲備份以使用我的電子郵件,但這是另一個好方法。謝謝! – Mike

+0

@Mike只是不改變你的電子郵件地址;-) – Grundlefleck

1

如果您是唯一的編碼員,您可以使用您的姓名。 我的名字是Jannis者:Froese,所以我會用

jannisfroese.projectname.stuff

,或者如果你想留在 '有效' 域名

localhost.jannisfroese。 projectname.stuff

(本地主機是保留的頂級域名)

當然,這隻適用於如果你的名字足夠獨特,所以碰撞不太可能足夠

相關問題