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

时间:2018-04-24 07:00:38

标签: java maven

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

5 个答案:

答案 0 :(得分:10)

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

因此,src/main/java中的所有内容都默认打包到您为客户提供的产品中,而您放入src/test/java的所有内容都不会。

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

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

答案 1 :(得分:2)

让测试代码和生产代码(src/main/java)分开的原因是,通过仅包含生产代码来构建应用程序更容易。

答案 2 :(得分:2)

根据Maven配置,test类将在src/test目录中找到,源代码将在src/main目录中找到。因此src/main/java是源代码的根目录。 src/test/java/test代码的根目录。

Ex:酒店套餐,预订舱位

Source Class file :  src/main/java/Hotel/Reservation.java
Test Class file : src/test/java/Hotel/ReservationTest.java

答案 3 :(得分:1)

src/main/java放置用于实际制作的代码。 src/test/java放置测试用例代码,例如junit test。执行maven包装时会执行这些代码。这些代码不会被打包到你的war或jar文件中。这意味着这些代码不适用于实际生产。

Plus:单元测试代码不需要在生产中打包。您不需要也不应该将它们放在src/main/java文件夹中。

答案 4 :(得分:0)

为了使类型更容易查找和使用,避免命名冲突和控制访问,程序员将相关类型的组捆绑到包中。here