升级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自带的,避免频繁更新,导致编译失败等问题。

报错:’oracle.jdbc.driver.OracleTypes’ is not public in ‘oracle.jdbc.driver’. Cannot be accessed from outside package

错误提示: ‘oracle.jdbc.driver.OracleTypes’ is not public in ‘oracle.jdbc.driver’. Cannot be accessed from outside package 原因: 这是因为项目用到的oracle jdbc的jar包太老了,在ojdbc14.jar中,OracleTypes类是public的,而到了oracle 11g的驱动中,比如ojdbc5.jar ,ojdbc6.jar中,这个类源码如下: class OracleTypes extends oracle.jdbc.internal.OracleTypes { private static final String _Copyright_2007_Oracle_All_Rights_Reserved_ = null;…