maven引入本地jar包的方法


maven作為包管理工具,好處不必多說

但是有些情況,比如需要引入第三方包,如快遞鳥,支付寶,微信等jar包(當然有可能直接提供maven依賴)

如果直接下載到本地之后,怎么整合到自己的maven工程呢?

方式挺多的,下面列舉四種方式

1. 上傳到maven中心倉庫

https://oss.sonatype.org/

願意折騰可也搞搞,可以參考 如何發布Jar包到Maven中央倉庫(確實比較麻煩)

如這是我手動上傳到maven中央倉庫的jar包 https://mvnrepository.com/search?q=chendahai

優點:可以直接在pom.xml中引入,打包部署沒有問題

缺點:上傳復雜,麻煩(創建工單,生成秘鑰等等)

2. 搭建maven私服

手動在后台管理頁面上傳,之后pom.xml引入

上傳方式查看 maven私服nexus上傳第三方jar包以及下載

優點:下載速度快,maven聚合項目更適用,內部適用deploy即可,打包部署沒有問題

缺點:相比第一種還要麻煩些,還占用本地服務器資源

3. 傳統方式

java SE的套路

新建lib包,之后導入(eclipse直接build path)(idea麻煩些:File→project structure→libraries→+jar包)

優點:簡單,不用做額外的配置

缺點:協作開發,多人都需做同樣的操作,溝通也是一回事

4. pom文件scope的system屬性

優點:配置后之后直接引入,maven reImport即可

缺點:沒啥缺點,就是配置者得費些時間

前置條件

要引入如下taobao-sdk-java.jar

操作

  1. 自定義目錄,這里在project的根目錄新建lib文件夾,將jar放進去

     

  2. pom.xml中引入
        <dependency>
          <groupId>dingding</groupId>
          <artifactId>dingding</artifactId>
          <version>2.8</version>
          <scope>system</scope>
          <systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
        </dependency>

注意:

  • groupId:自定義
  • artifactId:自定義
  • version:自定義
  • scope:必須是system
  • systemPath:jar包的路徑(idea編寫的時候會有提示的)

通過上述方式,在開發環境沒有什么問題,不會存在什么包找不到等情況

但是,maven project部署一般打包發布,所以打包是需要額外配置的(上述的第一二中方式不需要做額外處理)

處理打包

打包的時候需要做如下配置,需要通過resource標簽引入,位置build→resources→resource

 <build>
   <resources>
    <resource>
      <directory>lib</directory>
      <targetPath>/BOOT-INF/lib/</targetPath>
      <includes>
        <include>**/*.jar</include>
      </includes>
    </resource>
   </resources>
 </build>
  • directory:指定lib文件夾的位置,由於是相對工程根目錄,所以直接寫上lib即可
  • targetPath:打包到的文件夾位置,寫上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的話寫./】
  • includes:一般都是以jar結尾,就寫**/*.jar

較為完整的pom.xml

        <dependency>
            <groupId>dingding</groupId>
            <artifactId>dingding</artifactId>
            <version>2.8</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1479188381469-20190628.jar</systemPath>
        </dependency>

    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>lib</directory>
                <targetPath>/BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
        </resources>

 

ok,mvn package即可。


免責聲明!

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



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