0
点赞
收藏
分享

微信扫一扫

jdk版本问题导致的error: reference to query is ambiguous


1 用的是开源项目Davinci,在其之上进行改造



情况是这样的,在test的jenkins环境中是可以正常构建的当前项目的,但是准备上预发布的时候发现jenkins报错如下:



 



jdk版本问题导致的error: reference to query is ambiguous_jdk

 



[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project davinci-server_3.01: Compilation failure: Compilation failure:



[ERROR] /home/data_jenkins/workspace/bi-davinci/server/src/main/java/edp/core/utils/SqlUtils.java:[251,14] error: reference to query is ambiguous



[ERROR] both method <T>query(String,ResultSetExtractor<T>) in JdbcTemplate and method query(String,RowCallbackHandler) in JdbcTemplate match



[ERROR] where T is a type-variable:



[ERROR] T extends Object declared in method <T>query(String,ResultSetExtractor<T>)



[ERROR] /home/data_jenkins/workspace/bi-davinci/server/src/main/java/edp/davinci/service/excel/SheetWorker.java:[76,20] error: reference to query is ambiguous



[ERROR] both method <T>query(String,ResultSetExtractor<T>) in JdbcTemplate and method query(String,RowCallbackHandler) in JdbcTemplate match



[ERROR] where T is a type-variable:



[ERROR] T extends Object declared in method <T>query(String,ResultSetExtractor<T>)



[ERROR] /home/data_jenkins/workspace/bi-davinci/server/src/main/java/edp/davinci/service/excel/SheetWorker.java:[76,26] error: incompatible types: cannot infer type-variable(s) T



[ERROR] (actual and formal argument lists differ in length)



[ERROR] where T is a type-variable:



[ERROR] T extends Object declared in method <T>getObject(int,Class<T>)



[ERROR] /home/data_jenkins/workspace/bi-davinci/server/src/main/java/edp/davinci/service/excel/SheetWorker.java:[145,16] error: reference to query is ambiguous



[ERROR] both method <T>query(String,ResultSetExtractor<T>) in JdbcTemplate and method query(String,RowCallbackHandler) in JdbcTemplate match



[ERROR] where T is a type-variable:



[ERROR] T extends Object declared in method <T>query(String,ResultSetExtractor<T>)



[ERROR] -> [Help 1]



org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project davinci-server_3.01: Compilation failure



 



2 问题排查过程



1 首先上去jenkins服务器上用如下命令看版本:



# mvn -version  // 可以看到版本为:jdk 1.8.0_11、maven 3.6.1



看样子似乎没啥毛病,jdk也是1.8。先排除这个问题



 



jdk版本问题导致的error: reference to query is ambiguous_maven_02

 



 



2 然后我去项目的pom.xml查看如下,原本以为可能是maven-compiler-plugin版本问题:



 



jdk版本问题导致的error: reference to query is ambiguous_is ambiguous_03

 



所以可以排除这个可能性。



 



然后猜测是maven本地仓库下载损坏的问题,所以用mvn -version找到对应maven目录然后找到仓库位置为如下:



# cd ~



# cd .m2/repository



# rm -rf ./*     // 清空所有



依旧报原来的错误,所以可以排除这个可能性。



 



依旧报原来的错误,本来是排除了这个可能性的。但是跟同事商量后,在mvn的命令中加上-X 把debug信息打印出来,其关键问题信息如下:



 



jdk版本问题导致的error: reference to query is ambiguous_maven_04

 



上面发现jdk版本居然还是1.8.0_11????坑爹啊,然后就去找jenkins怎么设置jdk版本。配了jdk 1.8.0_211之后构建居然可以了!!



 



总结:就是jdk版本bug的锅。。。。。下面附上一张图:



 



jdk版本问题导致的error: reference to query is ambiguous_ci_05

 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 



 

举报

相关推荐

0 条评论