這個問題處於項目組,總算是解決了。下面是一些自己的做法。
1.說明介紹
公司現在用的是spring+maven,使用的公共maven庫沒有問題,但是想要把一些老的項目改造這種框架會出現一些問題。
因為一些老的項目中有好多第三方的jar包或者是自己的jar包(尤其是這種自己的包),maven庫上沒有。
最初的解決方案是一個個的deploy到maven庫上,但是遇到太多的三方jar包就太費事了,同時會有一些成本問題。
網上查了一下發現maven有一種方式可以將本地的Jar包依賴到項目中而不需要先deploy到maven庫上,值得學習一下。
2.在項目中新建一個lib
這個lib可以在項目下建,只要可以找到即可。
不過這里講lib目錄放在src下面了,問題不大。
3.將jar包放進來

4.修改pom文件
<!--添加外部依賴-->
basedir是自帶變量,指的是當前項目的絕對路徑,三圍自己隨便寫。
<dependency>
<groupId>ChartDirector</groupId>
<artifactId>ChartDirector</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/lib/ChartDirector.jar</systemPath>
</dependency>
5.問題所在
用mvn clean package打成jar包后運行就是報錯,正式找不到這些jar包中的相關類。把jar包解壓后在WEB-INF/lib里面也確實沒有發現用上述方式引入的jar包,看來是沒有把src/lib目錄里面的jar打進去,后來通過查找也終於找到方法了。
6.修改pom文件,在build標簽下增加如下配置
<!--設置maven-war-plugins插件,否則外部依賴無法打進war包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
7.maven clean 與 install

8.看效果
這個可以直接從target中看。

進入這個目錄下,然后打開war包:

