問題描述:
有一個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錯誤。
問題解決:
maven項目的jar包都是通過maven機制進行管理的,自己通過build path將jar引進去,寫代碼時沒問題,但是調試或者發布就會出現問題,解決辦法就是將該包也是利用maven的方式引入項目中,解決方式有兩種:
將gdal.jar包上傳到公司的maven私服上,然后配置路徑
如果沒有maven私服,可以直接通過文件方式引入該jar包,在pom.xml中添加該jar包的引用
|
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類屬性:
內置屬性(Maven預定義,用戶可以直接使用)
${basedir}表示項目根目錄,即包含pom.xml文件的目錄;
${version}表示項目版本;
${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包所在路徑,執行以下命令
引入依賴
|
1
2
3
4
5
|
<
dependency
>
<
groupId
>com.hope.cloud</
groupId
>
<
artifactId
>cloud</
artifactId
>
<
version
>1.0</
version
>
</
dependency
>
|
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
<div class="art_xg">
您可能感興趣的文章:
原文鏈接:http://blog.csdn.net/pltuyuhong/article/details/50954017
微信公眾號搜索 “ 腳本之家 ” ,選擇關注
業界資訊、不定期紅包、送書等活動等着你
