今天项目在maven install 的时候报“程序包oracle.sql不存在,类TIMESTAMP找不到”的问题:
plugins:maven-compiler-plugin:3.1:compile (default-compile) on project gdairport: Compilation failure: Compilation failure:
...TimestameUtil.java:[7,18] 程序包oracle.sql不存在
...TimestameUtil.java:[12,29] 找不到符号
...TimestameUtil.java:[13,33] 找不到符号 符号: 类 TIMESTAMP
一开始没有反应过来,百度了一下 程序包XXX不存在,类找不到 确实有很多类似的结果:
1.maven编译时只加载maven库中的jar包,而手动添加到lib下的包maven无法自动加载,这里需要在pom.xml里面添加maven编译时取jar时lib的路径。
我看了报错的代码compile ...xxx... failure,说明是install时编译的问题,也就是oracle.sql.TIMESTAMP类没有找到,于是发现项目的ojdbc14放在一个libs的文件夹(已经add build path过了)编译的时候没有找到ojdbc14.jar这个包,但是pom里是有配这个maven构建路径的,而且libs里其他jar包却编译没有问题。于是Java build path 里检查libraries,发现
ojdbc14.jar已经引入。为什么还是找不到程序包呢,它已经在libraries里了啊!
已经非常确定是ojdbc14.jar编译的问题了,应该是maven clean时class文件删了的原因。
最后,有点无奈,在没有好的方法情况下,我在target里找到了web-resources下的lib的ojdbc14.jar,抱着试一下也没事的心态add build path了,再maven install,竟然成功了!