1. 程式人生 > >Java-Maven專案引入UEditor圖片上傳元件jar包類庫的5種方式

Java-Maven專案引入UEditor圖片上傳元件jar包類庫的5種方式

專案用Maven管理jar包,用到了UEditor的jar包。專案原來直接使用UEditor的原始碼,編譯部署後,正常。
後來用的是jar包,放到WEB-INF目錄的lib包下,預設情況下,Maven不會把lib包加入到Classpath中,需要手動加入。
線上Maven自動打包,不會把UEditor.jar放到WEB_INF目錄下,導致程式報錯。

 但是maven中央倉庫沒有這個jar,索幸maven提供了system方式的依賴方式:
 <dependency>
  <groupId>com.baidu.ueditor</groupId>
  <artifactId>ueditor</artifactId>
  <version>1.1.1</version>
  <scope>system</scope>
  <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ueditor-1.1.1.jar</systemPath>
 </dependency>

本地跑了是可以的,線上Maven打包的時候又遇到了問題,提示找不到jar包。
 
 突然想起來,git倉庫,不允許提交jar包,雖然本地提交了,但是線上git倉庫沒有這個jar包,所以maven找不到。
 新發現的,多好的一種配置,竟然由於公司內部“遮蔽jar包”,導致流產,多麼讓人惋惜啊~
 
 線上環境解決這個問題,有5種方式:
 a.不配置system方式的jar,放到lib目錄下,雖然最終打包的war沒有這個jar,但是Maven打包不會報錯。
 等部署後,手動在專案的lib目錄copy一份jar包。
 這種方式的好處是,非常簡單;壞處是,如果重新打包部署,這個jar包就沒有了,又得重新copy。
 
 b.建議配置Maven私有倉庫,按照maven的標準配置,弄這個jar。
 我感覺實在是太麻煩了,為了一個jar,把maven用的這麼複雜,實在是不情願額。
 
 c.Maven中不配置這個jar,本地環境手動把lib目錄加入到Classpath,線上環境在自動化部署腳本里,加入一個
 "coyy" copy ueditor.jar ~tomcat/.../lib/
 
 後來發現,這個方法還是有問題,如果tomcat的war包還沒有被Tomcat解壓,怎麼移動到lib目錄呢?
 如果那個專案一直存在,a方式反而更好,只需要放置一次。
 
 d.手動在Maven倉庫裡放置一個ueditor的jar,不同於私有倉庫,和其它專案都在本地一個倉庫裡。
 本地配置:E:\MavenRepository\com\baidu\ueditor\ueditor\1.1.1\ueditor-1.1.1.jar
 伺服器上配置:/home/whptp/.m2/repository/com/baidu/ueditor/ueditor/1.1.1/ueditor-1.1.1.jar
 
 這種方式,適用於本地和伺服器上的配置環境,不適合給客戶用。
 客戶最終拿到的是war包,如果真是我們把原始碼給他們了,相當於他們有了自己的技術團隊,這個時候我們把這點告訴技術團隊就可以了。
 
 e.最原始的方法,把原始碼copy到src目錄,編譯部署自然就過去了。
 
小結
 a.個人官網專案,原來使用jar包,不配置Maven,現在改成system引入。
 由於在伺服器上沒有自動化部署環境,完全依賴本地打包,手動copy到線上。所以,可以使用Maven的system配置jar包。