今天項目在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,竟然成功了!