不是吧哥们你也不写单测?gradle项目使用lombok能正常运行,怎么单测就报错了?

7 阅读3分钟

不是吧哥们你也不写单测?gradle项目使用lombok能正常运行,怎么单测就报错了?

📚背景

程序员小张写好了一个工具类,为了保证功能的正确和健壮性,他就开始创建了测试类,进行工具类方法的编码。当他还没写完的时候,就已经迫不及待的 想点run test呢,恨不得马上开始见证奇迹的时刻。终于,他齐活了,你还别说当点run test的时候他的内心是激动的,甚至有点兴奋的发抖。结果你猜 怎么着,嘿,好家伙,报错了!提示“ 错误: 程序包lombok不存在” 、“错误: 找不到符号”。小张心想这不科学啊,我项目跑着好好的,怎么就单测报错了, 于是他便开始检查 ‘build.gradle’了。一看,好像真的发现了问题所在。

核心配置如下:(小伙伴们你发现小张没办法正常运行单测的原因了嘛)



dependencies {
    testImplementation group: 'junit', name: 'junit', version: '4.13.2'
    annotationProcessor 'org.projectlombok:lombok:1.18.38'
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.38'
}

📢 ‌文末还准备了idea快速升级maven版本插件分享,一定要看到最后!‌

💡 正文

  • 第一步,看到只有compileOnly的作用域,于是小张新增了配置,如下:


dependencies {
    testImplementation group: 'junit', name: 'junit', version: '4.13.2'
    annotationProcessor 'org.projectlombok:lombok:1.18.38'
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.38'
    testCompileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.38'
}
  • 第二步,开始信誓旦旦的执行起了单测,等待ing... 开始运行了,结果出来了,好家伙还是报错!!!
  • 第三步,继续回到配置处,修改作用域为implementation。嘿,我就不信邪了,我用最强悍的就不信不行😕

dependencies {
    testImplementation group: 'junit', name: 'junit', version: '4.13.2'
    annotationProcessor 'org.projectlombok:lombok:1.18.38'
    implementation group: 'org.projectlombok', name: 'lombok', version: '1.18.38'
}
  • 第四步,emmmmm... 重复第二步的步骤,再次等待执行结果。妈耶,还是报错,真的见鬼!!
  • 第五步,不死嗑了,俺去上网找答案~ 再网上搜索了一番之后未果,又问了下AI,结果都是几乎一样的。小张内心是崩溃的,。。。不是吧哥们,大家都不写单测?
  • 第六步,开始寻觅亲友圈的帮助,他想起来了一次聚会上他听到小A他们也在使用gradle进行开发。然后他便兴奋的联系同学小A寻求帮助,结果小A说,lombok用是用到了, 但项目里没有单测。不是吧哥们你也不写单测?然后又开始联系起了小B...
  • 第七步,小张一番询问未果后,只能再次硬着头皮上网搜答案了...终于,他在茫茫大海中找到了一篇能用的,正确的配置如下:(分享还是很有意义的,分享的多了也就好搜索的到了,不然都不知道要踩多久的坑!!!)

   annotationProcessor 'org.projectlombok:lombok:1.18.38'
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.38'

    testCompileOnly 'org.projectlombok:lombok:1.18.38'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.38'
  • 第八步,小张开始了他的单测和代码完善之旅...

🌟总结

gradle项目如何正确引入lombok及支持test单测?

dependencies 配置如下:


dependencies {

    annotationProcessor 'org.projectlombok:lombok:1.18.38'
    compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.38'

    testCompileOnly 'org.projectlombok:lombok:1.18.38'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.38'

}

📌 注意事项:

如何禁用Lombok生成的@Generated注解‌?

项目根目录下创建lombok.config文件,新增配置如下:

lombok.addLombokGeneratedAnnotation=false

插件分享

框架开发大佬、中台开发大佬快来看~ Maven快速调整项目版本再也不用手敲命令啦,小白也能快速调整!!!

结尾

以上就是本篇文章的全部内容啦,感谢你的阅读和观看。如果你觉得这篇文章有所帮助,欢迎“点赞”或分享给需要的小伙伴~

另外也欢迎关注公众号 “新程快咖员”\color{#ff4c41}{“新程快咖员”} 解锁更多内容!

本文使用 markdown.com.cn 排版