Maven项目中src/main/java和src/test/java之间的区别

Dhe*_*kar 3 java maven

当创建一个新的Maven项目,目录src/main/javasrc/test/java创建.通过一些谷歌搜索,我开始知道我main用于测试的源代码必须放在src/main/java.但是,两个单独目录的目的是什么.对类似问题的当前答案没有多大帮助.

lwi*_*lwi 13

Maven和其他构建管理环境(例如gradle)基于您通过例如单元测试进行自动化测试的假设.为此,您需要额外的测试代码,这些代码不应包含在交付给客户的最终产品中.

因此,所有src/main/java进入的产品都默认打包到您为客户提供的产品中,而您投入的所有产品src/test/java都不是.

出于各种原因,这是一个优势:

  • 您交付的产品较小
  • 在项目中找到与测试相关的代码更容易
  • 您只能加载各种库进行测试.
  • ...

  • 另请注意,测试是作为普通Maven构建的一部分运行的,因此它们需要快速("单元测试")而不依赖于基础架构.我个人的结论是集成测试等应该进入另一个项目.我相信这是Maven的设计缺点. (2认同)