没有自己域的项目的Java包命名空间

时间:2011-10-25 21:01:54

标签: java namespaces

关于如何为没有自己的域的开源项目命名包命名空间,是否有一般的经验法则?

命名空间应该是唯一的,因此选择域来处理它,但最终它并不重要,只要它们是唯一的。

现在,如果我有一个只在github上托管的项目,可以采取

com.github.username.projectname

或者是否相当不赞成,因为我使用的是一个我并不真正拥有的域名?

3 个答案:

答案 0 :(得分:8)

在包名中有许多com.google.code和带有sourceforge的项目,因此命名空间有很多先例。

答案 1 :(得分:8)

在您的示例中,com.github与您的代码没有直接关系。存储此代码(也称为托管)无关紧要,将来可能会发生变化。因此,我提出了一个纯粹的项目特定名称,如

org.projectname

甚至

projectname

因为包名称不需要是域名。

哦,顺便说一句:您将找到几乎所有关于命名约定的所有内容的优先级 - 不仅仅是Java包名称。但是从根本上说:在历史上,你也可以找到各种谋杀案的优先权。这是否只是因为其他人以前做过它才能让它接受?我不这么认为。

答案 2 :(得分:3)

没关系。一般来说,只选择“可能”的东西是独特的,并且是项目特定的。

软件包通常只有在设计用于消费的库时才会发生冲突;如果这些软件包只在项目内使用,那就更不重要了。