maven加載第三方jar不能加載


這個問題處於項目組,總算是解決了。下面是一些自己的做法。

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包:

  

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM