MEDO 项目开发中遇到的问题汇总
MEDO 简介
本意是创建一个个人 demo 工程,落地实践一个微服务项目。所以尝试在 github 上创建一个名叫 demo 的项目,但是名称已被占用,尝试了几次 medo(midou) 这个词可用,并且简单易读。现计划封装实现一些通用框架后续找一个业务方向落地。项目仓库 https://github.com/medoer/medo 。这里记录一下开发过程中遇到的问题和总结。
问题
集成 junit5 报错
异常: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: org/junit/platform/engine/EngineDiscoveryListener
原因:测试工具版本问题,根本原因不知。
方案:指定 junit 版本 , gradle 中配置 ext['junit-jupiter.version'] = '5.6.0'
单元测试配置读取问题
描述:在使用 spring junit 进行测试时发生了不能读取 spring application.yml 配置的情况。
原因:src/java/resources 和 src/test/resources 配置文件同时存在 test 目录下配置文件不生效
测试代码:https://github.com/medoer/medo-learning/tree/master/spring-demo/spring-unit-test
Gradle 多模块 gradle/ gradlew gradlew.bat
描述: 这三个 gradle 相关文件不需要在每个子模块中配置,在根目录下存在即可。
方案:如需要使用项目中的 gradlew 命令,单独处理某个子模块,使用 -b 参数制定 build.gradle 文件。
如: ./gradlew -b ./medo-framework/build.gradle clean build。
注:全局 gradle 命令在子模块中正常使用不需要制定 -b 参数。
Gradle build 时抛出内存不足异常
异常信息:Expiring Daemon because JVM heap space is exhausted
Daemon will be stopped at the end of the build after running out of JVM memory
原因: 为了减少项目间的耦合度,创建了很多子工程。在编译整个项目时,消耗了更多的内存。
方案:1. 在子模块中编译打包,可减少内存占用并且速度更快 2. 加大 gradle jvm 配置, 在 gradle.properties 中添加 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m
配置
TODO
版权声明: 本文为 InfoQ 作者【陈皮】的原创文章。
原文链接:【http://xie.infoq.cn/article/5c44dc9443768fa0261ec90e0】。未经作者许可,禁止转载。
评论