Java 国际用户的包命名有任何例外吗?

Are there any exceptions to Java package naming for international users?

虽然我理解反向URL系统的原理,但它似乎只对拥有非国家域名的公司有意义。而包名以 com.或组织。有用且简短,并就可能的许可给出了建议,即软件包必须以 uk 开头的想法。 ,神父。 , J.P。等等 - 然后通常是该国家/地区版本的 .com 或 .org 的另一部分 - 仅仅因为它的编写位置,这与它在软件中的使用无关,看起来很愚蠢。

是否有任何标准的替代约定?

While the package name beginning with com. or org. is useful

恕我直言,只有在您的代码要与其他公司或组织共享时才有用。

在大多数项目中,公司会竭尽全力确保他们的知识产权留在公司。因此,使用为共享代码而设计的结构没有意义。顺便说一句,即使以后需要更改项目,这也不是问题,您可以使用 jarjar 等工具更改 JAR 的包。

所以对大多数公司内部项目没有用。

Is there any standard alternate convention for this?

我会用模块的名称来命名包。例如如果你使用 maven,我会使用

<groupId>mygroupid</groupId>
<artifactId>myartifact</artifactId>

并使包匹配

package mygroupid.myartifactid;

或子包。

无论您是否使用域名,这都有效。