关于如何为没有自己的域的开源项目命名包命名空间,是否有一般的经验法则?
命名空间应该是唯一的,因此选择域来处理它,但最终它并不重要,只要它们是唯一的。
现在,如果我有一个只在github上托管的项目,可以采取
com.github.username.projectname
或者是否相当不赞成,因为我使用的是一个我并不真正拥有的域名?
答案 0 :(得分:8)
在包名中有许多com.google.code和带有sourceforge的项目,因此命名空间有很多先例。
答案 1 :(得分:8)
在您的示例中,com.github
与您的代码没有直接关系。存储此代码(也称为托管)无关紧要,将来可能会发生变化。因此,我提出了一个纯粹的项目特定名称,如
org.projectname
甚至
projectname
因为包名称不需要是域名。
哦,顺便说一句:您将找到几乎所有关于命名约定的所有内容的优先级 - 不仅仅是Java包名称。但是从根本上说:在历史上,你也可以找到各种谋杀案的优先权。这是否只是因为其他人以前做过它才能让它接受?我不这么认为。
答案 2 :(得分:3)
没关系。一般来说,只选择“可能”的东西是独特的,并且是项目特定的。
软件包通常只有在设计用于消费的库时才会发生冲突;如果这些软件包只在项目内使用,那就更不重要了。