首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘src/main/java’约定的优点是什么?

‘src/main/java’约定的优点是什么?
EN

Stack Overflow用户
提问于 2010-06-09 09:52:34
回答 5查看 31.2K关注 0票数 63

我注意到许多项目的结构如下:

  • 项目-A
    • 箱子
    • 钢筋混凝土
        • java
          • RootLevelPackageClass.java

我目前使用以下约定(因为我的项目是100% java):

  • 项目-A
    • 箱子
    • 钢筋混凝土
      • RootLevelPackageClass.java

我目前不使用Maven,但我想知道这是否是Maven约定,或者是否还有其他原因。有人能解释一下为什么现在第一个版本如此流行吗?我是否应该接受这个新的惯例?

克里斯

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-09 10:01:56

主要的好处是test目录作为src的子目录,其目录结构与main中的目录结构相同。

  • 项目-A
    • 箱子
    • 钢筋混凝土
        • java
          • RootLevelPackageClass.java

代码语言:javascript
复制
        - resources

代码语言:javascript
复制
    - test  
        - java  
            - TestRootLevelPackageClass.java

代码语言:javascript
复制
        - resources

RootLevelPackageClass的所有包私有方法都是可见的,即从TestRootLevelPackageClass中可以测试。由于测试代码也是源代码,所以它的位置应该位于src目录下。

票数 66
EN

Stack Overflow用户

发布于 2010-06-09 09:53:19

是的,这是Maven会议。

即使您的项目是100% Java (与Maven btw一样典型),您也经常有资源文件(根据Maven约定转到src/main/resources ),或者web应用程序的东西,或者.所有这些都很容易适应Maven系统。

如果您对当前的构建系统(不管是什么)感到满意,就没有理由切换到Maven。否则,或者如果启动一个新项目,您可以评估您的选项,包括Maven。

票数 28
EN

Stack Overflow用户

发布于 2010-06-09 13:24:16

其他人已经告诉你这是一个Maven会议,我会回答你的问题:

绝对没有。当然,将代码片段分开以分离根文件夹是有益的,但是通常您可以通过

    • 钢筋混凝土
      • com.org.net
        • Your.class

代码语言:javascript
复制
- test  
    - com.org.net  
        - YourTest.class

代码语言:javascript
复制
- lib
- bin
- resources

而不是。实际上,Maven做了一件很重要的事情,这实际上是的错误,:它想要向源代码存储库中添加二进制内容,而源代码存储库只用于文本内容!所有二进制内容都应该在源代码存储库之外进行管理,其中包括web应用程序中的图像等等。

但是,让我们假设您已经决定生活在有点臭的Maven生态系统中;那么您当然应该尽可能严格地遵循Maven惯例。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3004710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档