2008-10-16 75 views

回答

68

您可以关注maven的standard project layout。您不必实际使用maven,但它将使转换更容易(如有必要)。此外,其他开发商将习惯于看到的布局,因为许多开源项目奠定了这种方式,

+2

如果您有选择,我也推荐使用Maven的布局。这是一个深思熟虑的结构,经过了战斗测试,并且很多开发人员都很熟悉。 – 2008-10-17 04:46:54

+13

您可以使用此链接创建目录布局:mkdir -p src/{main/{java,resources,filters,assembly,config,webapp},test/{java,resources,filters},site} – 2010-02-19 13:41:52

+0

Maven的标准项目布局是丑陋的......:/ – 2016-09-09 21:06:44

51

有一些现有的资源,你可以检查:

  1. Properly Package Your Java Classes
  2. Spring 2.5 Architecture
  3. Java Tutorial - Naming a Package
  4. SUN Naming Conventions

对于它的价值,我倾向于使用的我自己的个人指南如下:

  1. 从反向域开始,例如, “com.mycompany”。
  2. 使用产品名称,例如“myProduct的”。在某些情况下,我倾向于使用不属于特定产品的普通包装。这些将最终根据这些通用类别的功能进行分类,例如, “io”,“util”,“ui”等。
  3. 之后它变得更自由形式。通常我根据项目,功能区域,部署等进行分组。例如,我可能会有“project1”,“project2”,“ui”,“client”等。

其他几点:

  1. 在我从事设计文档的包名工作的项目中很常见。通常产品已经分成功能区或功能区。
  2. 不要过分强调将常用功能推入更高级的包中。等待那里需要跨项目,产品等,然后重构。
  3. 观察软件包间依赖关系。它们并不全是坏的,但它可能意味着可能是单独的单元之间的紧密耦合。有些工具可以帮助您跟踪这一点。
+1

在反向域名的情况下(“com.mycompany”),除了“mycompany”子包外,“com”包通常是空的吗? – Josephus 2016-02-10 21:16:14

1

的方式,我通常有我的文件夹 -

  • 项目名称
    • SRC
    • 测试层次
    • 文档
4

Here你可以阅读有关标准目录布局和java项目的目录/包结构。

3

我通常喜欢有以下几种:

  • 斌(二进制)
  • 文档(文档)
  • INF(信息)
  • lib(库)
  • res(资源)
  • SRC(来源)
  • TST(测试)

这些可视为不符合常规,但我觉得这是组织的事情非常好的方式。