升级jetbrain idea 2019.2后,maven编译报错,提示重复的类

升级jetbrain idea 2019.2后,maven编译报错,提示重复的类 打开项目,看到idea的更新提示有新版本2019.2,我想都没想直接点了升级,结果升级后,maven编译同样的项目,总是提示”xxx重复的类”。 尝试解决的过程: 1.搜索代码是否有java类重复。 结果:没有发现。 2.maven依赖问题,clean后重新导入。结果:无效。 3.使用maven依赖检测插件,看是否有重复依赖。 结果:没发现。 4.怀疑idea升级导致的。结果:重新安装2019.1.3版本的idea,可以正常编译。 问题原因: 因为我一直使用的是idea自带的maven,而 2019.2版本的idea的maven升级了,从maven3.3.9升级到了最新的3.6.1,但是这个版本的maven有bug,会在编译时重复将当前目录加入到classpath,导致编译时总会报重复的类。(该mavenbug见:https://issues.apache.org/jira/browse/MNG-6649 )。 解决办法: 下载maven3.6.0,然后修改idea的maven路径,指向3.6.0,然后重新编译,一切正常。 总结: 对于一些常用的编译打包工具,最好还是一直使用固定版本,不要用ide自带的,避免频繁更新,导致编译失败等问题。

idea使用ant编译打包报错:GC overhead limit exceeded 的解决办法

上周给公司的一个项目分支打包手机后台代码,使用的是idea自带的ant编译打包,结果死活报错: GC overhead limit exceeded 看样子是jvm的heap不够,然后我直接在idea的compiler设置里修改heap,加大到2g,但是依然报这个错,google了半天都是网上的那几种方法,没什么效果,有点抓狂了,急着发更新,没辙,只能先去睡觉了。 第二天突然想到,使用idea自带的ant编译打包,ant也是个java程序,是不是在运行ant的时候,heap参数太小了呢?赶紧打开idea的ant参数配置界面: 坑,还真是运行ant时,heap设置太小了,idea默认才给了128M,如果遇到大点的项目不但可能报GC overhead limit exceeded,还会影响编译打包速度。最后,把Maximum heap改为2048,Maximum stack size改为1024,重新打包,没有报错了。 后记: 没有找到在哪里可以指定idea给所有ant项目设置一个默认的heap大小,谁要是知道在哪里,希望能告知下,谢谢。 来自为知笔记(Wiz)