我已经熟悉使用域名创建唯一包名(即包com.stackoverflow.widgets)的标准Java包命名约定.然而,我从未见过任何关于如何为个人项目 Select 包名的建议.我想这是因为这真的是个人品味的问题.

那么,您如何为永远不会投入生产的个人项目 Select 包名(您可能正在空闲时间try 一个新框架).假设你没有一个个人网站,你可以用它的域名来创建你的包 struct ,你会怎么做(或会怎么做)?你有没有一个逻辑系统来为爱好项目生成新的包名,或者你只是使用像mypackage这样的简单的丢弃包名?

因为我很好奇,想看看不同的人对此有什么不同的 idea ,所以我把它做成了一个社区维基.

对我个人来说,我从来没有想过太多,但是今晚我想和Wicket个人一起玩,我突然想到我不清楚我想要如何组织我的爱好项目.对于爱好项目(至少在我看来),单独的、不同的包命名约定将是使个人代码和与工作相关的代码明显分离的好方法.

我在考虑一个简单的分层命名约定,将个人项目的源代码保存在一个根文件夹中:

  • 使用myprojects作为根文件夹
  • 追加项目名称
  • 添加任何其他子包名称

因此,我的Wicket项目将在包myprojects.learningwicket中,单元测试将在包myprojects.learningwicket.tests中(例如).

推荐答案

如果您只是在做其他人不会使用代码的个人项目,那么您可以创建一个您喜欢的包名.但是,不要编造以com.net.或其他顶级域名开头的内容,因为这将意味着您拥有该域名(即.仅仅因为您的名字恰好是John而使用com.john作为包名并不是一个好主意).

如果您打算将代码提供给其他任何人,您应该使用全局唯一的包名,根据Java约定,这意味着您应该注册并使用域名.

Java相关问答推荐

如何在Inspaut中获取当前路径的 * 模式 *?

如何在Android上获取来电信息

Java Stream,需要更新列表对象列表

无法在org. openjfx:javafx—fxml:21的下列变体之间进行 Select

上下文初始化期间遇到异常-使用Java配置配置HibernateTemplate Bean时

如何在Java中从XML中获取特定的 node ,然后将其删除?

具有阻塞方法的开源库是否应该为执行提供异步选项?

如何解释Java中for-each循环中对Iterable的强制转换方法引用?

X=x*0.90;产生有损转换误差.X*=0.90;不是.为什么?

try 在两个不同数组的数字之间求平均值

Quarkus:运行时出现EnumConstantNotPresentException

如何根据配置动态创建N个bean

除0错误/抱歉我的句子是PT

有没有办法知道在合并中执行了什么操作?

视图被推出线性布局-Android

基于Java中mm/dd/yy格式的最近日期对数组列表进行排序

Kotlin-仅替换字符串中最后一个给定的字符串

为什么使用lo索引来解决二进制搜索问题不同于使用hi索引?

当我将JTextField的getText函数与相等的String进行比较时;t返回true

为什么Spring要更改Java版本配置以及如何正确设置?