【问题标题】:Default directory layout for Java projectJava 项目的默认目录布局
【发布时间】:2010-11-13 13:50:55
【问题描述】:

Java 项目是否有任何标准的目录布局? 你最喜欢哪种布局?

我问的是比项目目录中的“src”和“bin”更复杂的布局(即,您将测试类、构建配置等放在哪里?)。

提前致谢。

【问题讨论】:

    标签: java organization project-organization


    【解决方案1】:

    我通常将 /src 用于源代码, /test 或 /tst 用于测试代码, /build 用于类文件, /lib 或 /libs 用于依赖项, /dist 用于我的 JAR 和库(所以我可以压缩目录并不假思索地分发它)和 /docs 用于文档(包括 JavaDoc)。我的 Ant 构建脚本位于我命名的目录中的子目录中。

    当我构建时,我从 /build 创建 JAR 并将 /lib 和 /docs 复制到 /dist。

    【讨论】:

    • 我认为我没有忘记任何主要目录或文件集。如果我这样做了,请告诉我,我会添加我放置它们的位置。目前我在工作之外没有任何主要的 Java 项目。
    【解决方案2】:

    您是否使用任何构建工具?比如Maven?如果没有,您可能应该 - 在这种情况下,您的目录布局将为您预定义。

    【讨论】:

    • ...在 Maven 的特殊情况下,建议您不要坚持使用预定义的布局!
    • 想详细说明一下?我不是说你需要一字不差,但整体布局有什么问题?
    • Ooops ... s/not//p ... 我的意思是说“你最好坚持使用预定义的布局”。
    • Maven 的布局看起来确实有点过度设计。你能否详细说明为什么你认为这是一个好的布局,除了你别无选择。
    • 您确实可以选择 - 您可以更改项目文件中的默认 Maven 布局。也就是说,“主要”和“测试”层次结构之间的分离是完全合乎逻辑的——测试有自己的资源和配置文件。 “main”下的 webapp(如果适用)、java、资源和配置也是如此——为什么不应该将它们分开?我并不是在争论使用 Maven 与 Ant/Ivy - 如果您不理解或不喜欢它,请不要使用它。但我真的不明白“我不明白,所以很烂”的方法。
    【解决方案3】:

    你可以看看Sun Developers Network - Project Conventions(互联网档案)

    【讨论】:

    • 很遗憾,链接不再起作用了...您现在可以找到它here
    • 评论者的链接现在也失效了。 OP 已更新为 Internet 档案的副本。
    【解决方案4】:

    我用:

    programming
      - distro
      - java
          - lib
          - src
              - com...
              - net...
              - org...
          - tools
    

    我将类与源代码并排编译,然后从那里打包到发行版的子目录中。

    【讨论】:

      【解决方案5】:

      对于我通常使用的网络项目:

      <project name>
        dev
          src
          lib
          www
          build.xml
        build
          www
          bin
        www
      

      src 中的www 文件夹是原始文件夹。构建中的www 文件夹与类似文件夹的内容相结合以生成需要上传的内容。外面的www 文件夹是我运行本地副本的地方,其中包含临时文件和其他此类垃圾。我在build.xml 中有一个 ant 脚本来复制内容。

      我想知道是否有任何标准。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-21
        • 2013-02-05
        • 1970-01-01
        • 2017-07-21
        • 2013-07-21
        • 2013-05-24
        • 2010-09-08
        • 2015-03-29
        相关资源
        最近更新 更多