mac系統下使用sapjco導致maven中依賴的jar包無法引入
昨天,由於工作需要,需要去接觸另一個專案,這個專案在我剛來公司的時候做過一個小的功能,之後就沒有再接觸過,就在昨天需要重新搞一個東西出來,但是發現專案執行不起來,jar包都引入不了,經過一番摸索也是毫無頭腦,只知道問題表現形式,但是找不到問題的原因。
問了下同事,同事竟然也出現過這樣的問題,跟我說了下問題可能出現的原因,又一起開始搞,功夫不負有心人,終於搞出來了,特在此分享下!
【一個人要不斷努力沒錯,但是適時也要虛心請教別人,會讓自己少走許多彎路】
問題描述:
OS X EI Capitan 版本10.11.3這是當前我係統最新版本,在此版本前有可能使用sap不會出現問題,當升級到當前版本的系統的時候
1、會導致maven中pom檔案裡所有的jar包都無法引入
2、並伴隨著會出現sap下CpicDriver找不到。
問題原因:
低版本的mac在/usr/lib下面會自動加入呼叫rfc介面的jar依賴,由於mac系統升級導致安全性變得更強,使得mac本身不具備此項功能
解決方案:
步驟1:
首先需要下載sapjco(附件如下),下載完成之後需要把解壓後的檔案中libsapjco3.jnilib檔案加入/usr/lib下
那麼問題來了:(會提示你沒有許可權Operation not permitted)
我們需要進入root許可權,copy,如果還是提示沒有許可權,就是因為 El Capitan 加入了
此時我們需要重啟電腦,在啟動的時候摁住command+R,會進入恢復模式,點選選單欄裡面的終端,輸入如下命令csrutil disable命令去關閉Rootless,重新啟動即可。(如果想恢復,同樣的方式輸入csrutil enable命令)
詳細csrutil請見http://www.jianshu.com/p/22b89f19afd6
啟動完成之後重新執行cp命令,複製成功
步驟2:
配置環境變數,在配置檔案中新增
#sapjco
export DYLD_LIBRARY_PATH=/usr/lib
步驟3:
重新maven install會發現所有的jar都已經引入
如果步驟3執行後,還是無法引入jar包,建議先把pom檔案中sap相關包配置刪除掉,重新引入其他包。
PS:
如果maven專案中還是無法引入sap相關的jar包是,最後就只能在Dependencies中手動將解壓出來的sapjco3.jar新增到依賴中
至此:問題解決!