maven項目引用外部jar包的方法

問題描述:java

有一個java maven web項目,須要引入一個第三方包gdal.jar,可是這個包是本身打包的,在maven中央庫裏面找不到該包,所以我採用傳統的方式,將這個包拷貝到:項目名稱\src\main\webapp\WEB-INF\lib的目錄下,而後經過config build path將該gdal.jar包引入到項目工程中。對於傳統java web項目,這麼作固然沒有問題,可是對於maven項目,項目打包(mvn install)時就會報錯,在項目調試時(debug on server)也會出現文件發佈不全的問題:tomcat的webapp目錄下有該項目,可是裏面文件不全,經過web訪問時就會404錯誤。web

問題解決:tomcat

maven項目的jar包都是經過maven機制進行管理的,本身經過build path將jar引進去,寫代碼時沒問題,可是調試或者發佈就會出現問題,解決辦法就是將該包也是利用maven的方式引入項目中,解決方式有兩種:微信

將gdal.jar包上傳到公司的maven私服上,而後配置路徑app

若是沒有maven私服,能夠直接經過文件方式引入該jar包,在pom.xml中添加該jar包的引用eclipse

?
1
2
3
4
5
6
7
< dependency >
   < groupId >gdal</ groupId >
   < artifactId >gdal</ artifactId >
   < version >1.0.0</ version >
   < scope >system</ scope >
   < systemPath >${project.basedir}/src/main/webapp/WEB-INF/lib/gdal.jar</ systemPath >
</ dependency >

其中project.basedir爲maven內置屬性,共有6類屬性:webapp

內置屬性(Maven預約義,用戶能夠直接使用)maven

${basedir}表示項目根目錄,即包含pom.xml文件的目錄;學習

${version}表示項目版本;ui

${project.basedir}同${basedir};

${project.baseUri}表示項目文件地址;

${maven.build.timestamp}表示項目構件開始時間;

${maven.build.timestamp.format}表示屬性${maven.build.timestamp}的展現格式,默認值爲yyyyMMdd-HHmm,可自定義其格式,其類型可參考java.text.SimpleDateFormat。

另外兩種方式

方式1:編譯階段指定外部lib

?
1
2
3
4
5
6
7
8
9
10
11
12
< plugin >
< artifactId >maven-compiler-plugin</ artifactId >
< version >2.3.2</ version >
< configuration >
< source >1.8</ source >
< target >1.8</ target >
< encoding >UTF-8</ encoding >
< compilerArguments >
< extdirs >lib</ extdirs > <!--指定外部lib-->
</ compilerArguments >
</ configuration >
</ plugin >

方式2:將外部jar打入本地maven倉庫

cmd 進入jar包所在路徑,執行如下命令

複製代碼 代碼以下:
mvn install:install-file -Dfile=cloud.jar -DgroupId=com.hope.cloud -DartifactId=cloud -Dversion=1.0 -Dpackaging=jar

引入依賴

?
1
2
3
4
5
< dependency >
< groupId >com.hope.cloud</ groupId >
< artifactId >cloud</ artifactId >
< version >1.0</ version >
</ dependency >

以上就是本文的所有內容,但願對你們的學習有所幫助,也但願你們多多支持腳本之家。

原文連接:http://blog.csdn.net/pltuyuhong/article/details/50954017

微信公衆號搜索 「 腳本之家 」 ,選擇關注

業界資訊、不按期紅包、送書等活動等着你

相關文章
相關標籤/搜索