Java项目的包结构?

时间:2008-10-16 22:48:29

标签: java packages

在Java Web应用程序中设置包结构的最佳做法是什么?

您如何设置src,单元测试代码等?

7 个答案:

答案 0 :(得分:78)

你可以关注maven的standard project layout。您不必实际使用maven,但它将在未来(如有必要)使转换更容易。此外,其他开发人员将习惯于看到这种布局,因为许多开源项目都是这样铺设的,

答案 1 :(得分:54)

您可能会检查一些现有资源:

  1. Properly Package Your Java Classes
  2. Spring 2.5 Architecture
  3. Java Tutorial - Naming a Package
  4. SUN Naming Conventions
  5. 对于它的价值,我倾向于使用的个人指南如下:

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

      1. 在我从事过设计文档中的软件包名称的项目中,这是很常见的。通常,产品已经分为功能或目的区域。
      2. 不要过分强调将常用功能推送到更高的软件包中。等待项目,产品等之间的需求,然后重构。
      3. 观察包间依赖关系。它们并非都不好,但它可以表示可能是独立单元之间的紧密耦合。有些工具可以帮助您跟踪这一点。

答案 2 :(得分:39)

我建议按功能创建包结构,而不是按实现层创建。关于这一点的好记录是Java practices: Package by feature, not layer

答案 3 :(得分:3)

我通常喜欢以下内容:

  • bin(Binaries)
  • doc(文件)
  • inf(资讯)
  • lib(图书馆)
  • res(资源)
  • src(来源)
  • tst(测试)

这些可能被认为是非常规的,但我发现它是组织事物的一种非常好的方式。

答案 4 :(得分:1)

我通常拥有文件夹层次结构的方式 -

  • 项目名称
    • SRC
    • 测试
    • libs
    • 文档

答案 5 :(得分:1)

The way I usually organise is
- src
        - main
                - java
                - groovy
                - resources
        - test
                - java
                - groovy
- lib
- build
        - test 
                - reports
                - classes
- doc

答案 6 :(得分:1)

另一种方法是将API,服务和实体分离到不同的程序包中。

enter image description here