【发布时间】:2009-01-07 16:18:40
【问题描述】:
我刚刚开始学习 Java SE,并且对通常的 Java 包名称约定没有问题,例如com.example.library_name_here.package_name_here
除了。
我注意到在一些相当知名的软件包中没有遵守这一点。
-
JLine:
jline.* -
JACOB:
com.jacob.*(没有jacob.com) -
JNA:
com.sun.jna.*(网站上的免责声明说注意:Sun 不赞助这个项目,即使包名 (com.sun.jna) 可能暗示其他情况。)
所以我想知道,是否存在通常的反向域名约定被破坏的情况,并且有很好的方法来解决它?我能想到的唯一情况是围绕域名所有权问题(例如,您更改项目托管/域名,或者已经有一个众所周知的包对您的域具有“抢注权”,或者您对域的所有权运行出去 & 别人抢购它)。
编辑:如果我使用我公司的域名,我们被收购或分拆,我们应该如何处理包名?保持它们相同或重命名? (我认为从引用包的编译类然后丢失的角度来看重命名是不好的)
【问题讨论】:
-
JUnit 曾经犯过同样的错误,但在 Junit 4 中修复了它(同时仍将一些类保留在旧包中以实现向后兼容性)