繁体   English   中英

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

[英]Difference between src/main/java and src/test/java in a Maven project

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

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

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

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

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

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

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

例如:酒店套餐,预订舱位

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM