2011-03-10 24 views
7

我想发布一个开源的java库。我想用我的姓氏作为包名,但我觉得有点奇怪。我希望使用更像“open.libname”这样的中性语言。我应该使用哪个软件包名称用于开放源代码的java库?

有关于开源java包命名的建议吗?

+0

关闭选民:实际上有一个关于“我该如何命名我的Java软件包?”的权威性答案,使用了答案中描述的反向域名(参见[Java语言规范第6.1节]末尾的注释(https ://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.1))。我投票结束重复提供了一个很好的答案,但是他的问题并不完全匹配这个问题 - 如果你知道更好的副本,请使用它。 – 2015-06-27 01:48:53

+0

[Java包com和组织]的可能的重复(http://stackoverflow.com/questions/2125293/java-packages-com-and-org) – 2015-06-27 01:49:00

回答

10

正如有人说,下手的包名反向域名:

注册一个域名,如myproject.org,然后使用org.myproject.mymodule

或者,如果您没有自己的域名,请使用您托管代码的子域名,例如,如果您将代码托管在myproject.sourceforge.net上,请使用net.sourceforge.myproject.mymodule

+1

如果选择[sourceforge.net](http://sourceforge.net)作为主机,'net.sf'是一个不错的短前缀。 [sf.net](http://sf.net/)是由sourceforge.net注册的域名。 – 2011-03-11 09:01:24

+0

我喜欢你的建议。在我的情况下,这将是一个awkard'com.google.code.mylibrary',因为这不是谷歌官方代码版本。备择方案? – Gatis 2011-03-11 12:33:50

+1

@Gatis你有没有在我的回答中看到我对'com.googlecode.'的建议? 'googlecode.com'指向'code.google.com'。 – 2011-03-11 14:10:39

4

通常的建议是将包装上的名称以相反顺序排在您的包装的前面:com.mydomain.mypackage。由于您拥有该域名,所以名称冲突的机会减少了。

此外,包名称的更好选择是反映包的功能,而不是您自己的名称。当你想发布你的第二个(也许完全不相关的)库时,你会用什么?

+0

你的意思是类似gatis.foo和gatis.bar图书馆foo和酒吧? – Gatis 2011-03-11 12:30:53

+0

是的。如果您拥有像gatis.com这样的域名,则可以使用包名称“com.gatis.foo”和“com.gatis.bar”。不要太过分,但越能让包名称独一无二,名称冲突问题的机会就越小。 (在许多情况下,软件包名称的选择并不重要,但分发库时的选择并不相同,而且Android Market等地点使用启动类的软件包名称来识别应用程序。) – 2011-03-11 16:52:04

0

这可能会也可能不是您正在寻找的答案。

常见约定是反转您的个人/公司域名,并将其预先设置为包名称。

所以,如果您的域名是“www.feel.com”和你的包名是“mypackage的”,那么你完全合格的包名称为:com.feel.mypackage

+0

[软件包命名约定]( http://en.wikipedia.org/wiki/Java_package#Package_naming_conventions)是一切都是小写。 – 2011-03-10 19:15:55

+0

@特谢谢提醒,刚更新。我已经离开Java太久...... – 2011-03-10 19:18:16

3

你在哪里管理你的项目?例如,当我在Google Code上主持项目时,我倾向于使用com.googlecode.project-name(使用com.google.code.project-name似乎很粗鲁)。我实际上并不知道Google对此有什么看法,但它是遵循许多Sourceforge.net项目的例子。如果您拥有个人/公司域名,那么请继续使用该域名。

相关问题