亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Maven項目中將本地依賴庫打包到最終的JAR中的實現(xiàn)

 更新時間:2025年05月14日 09:22:03   作者:墨鴉_Cormorant  
本文主要介紹了Maven項目中將本地依賴庫打包到最終的JAR中的實現(xiàn),將本地依賴安裝到Maven本地倉庫,可以避免使用system作用域帶來的不可移植性和打包問題,感興趣的可以了解一下

前言

在現(xiàn)代后端開發(fā)中,構(gòu)建高效且可擴展的 Web 應用程序通常依賴于多種第三方庫和內(nèi)部依賴。這些依賴可以來自公共倉庫,也可能是公司內(nèi)部自研的庫或尚未發(fā)布到公共倉庫的 JAR 包。本文將詳細介紹如何在 Maven 項目中處理本地依賴庫,并確保這些依賴能夠正確地打包到最終的可執(zhí)行 JAR 文件中。本文不僅以 Doris 連接器(flink-doris-connector)作為示例,還涵蓋了處理其他本地依賴庫的通用方法。

為什么需要打包本地依賴庫?

通常,依賴庫可以通過 Maven 中央倉庫或其他公共倉庫輕松獲取和管理。然而,有時我們需要使用一些未發(fā)布到公共倉庫的本地 JAR 包,例如:

  • 公司內(nèi)部開發(fā)的庫
  • 第三方提供但未上傳到 Maven 倉庫的庫
  • 特殊版本或定制版的庫
  • 直接引用本地依賴庫可能會引發(fā)一些問題,尤其是在構(gòu)建和部署過程中。為了確保項目的可移植性和一致性,必須將這些本地依賴正確地打包到最終的 JAR 文件中。

常見問題:使用 system 作用域

  • 在 Maven 中,可以使用 system 作用域來引用本地 JAR 包。然而,這種方法有幾個顯著的缺點:

    • 不可移植性:system 作用域依賴的路徑是硬編碼的,其他開發(fā)人員在不同的環(huán)境中可能無法找到該路徑。
    • 打包問題:使用 system 作用域的依賴默認不會包含在最終打包的 JAR 文件中,導致運行時缺少必要的依賴。
  • 依賴管理的最佳實踐

    為了避免上述問題,推薦的做法是將本地依賴庫安裝到 Maven 本地倉庫中,并使用常規(guī)的依賴管理機制進行引用。這樣,可以確保依賴庫的一致性和可移植性,同時也方便后續(xù)的依賴管理和版本控制。

  • 解決方案:將本地依賴庫打包到最終 JAR

詳細步驟

以下是詳細的步驟,展示如何在 Maven 項目中包含本地依賴庫并將其打包到最終的 JAR 文件中。

步驟 1:將本地 JAR 安裝到 Maven 本地倉庫

首先,需要將本地的 JAR 包安裝到 Maven 的本地倉庫中。假設有一個本地的 flink-doris-connector JAR 文件位于項目的 libs 目錄下。

打開終端,執(zhí)行以下命令:

mvn install:install-file \
-DgroupId=org.apache.doris \
-DartifactId=flink-connector-doris_2.12 \
-Dversion=1.14_2.12-1.1.1 \
-Dpackaging=jar \
-Dfile=libs/flink-doris-connector-1.14_2.12-1.1.1.jar

參數(shù)說明:

通過上述命令,將本地的 JAR 包安裝到 Maven 本地倉庫中,使其能夠像其他依賴一樣被 Maven 管理。

  • -DgroupId:依賴的組織 ID,通常與包名相對應。
  • -DartifactId:依賴的模塊名。
  • -Dversion:依賴的版本號。
  • -Dpackaging:依賴的打包類型,通常為 jar。
  • -Dfile:本地 JAR 文件的路徑。

步驟 2:修改 pom.xml 文件中的依賴配置

安裝完成后,需要在項目的 pom.xml 文件中引用該依賴。移除之前使用 system 作用域的配置,并改為默認的 compile 作用域。

原始依賴配置(使用 system 作用域)

<dependency>
    <groupId>org.apache.doris</groupId>
    <artifactId>flink-connector-doris_${scala.binary.version}</artifactId>
    <version>1.14_2.12-1.1.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/libs/flink-doris-connector-1.14_2.12-1.1.1.jar</systemPath>
</dependency>

修改后的依賴配置

注意:省略了 和 元素,默認作用域為 compile,這樣 Maven 會自動處理該依賴。

<dependency>
    <groupId>org.apache.doris</groupId>
    <artifactId>flink-connector-doris_${scala.binary.version}</artifactId>
    <version>1.14_2.12-1.1.1</version>
</dependency>

步驟 3:重新構(gòu)建項目

mvn clean package

此命令將:

清理之前的構(gòu)建產(chǎn)物。

編譯項目源代碼。

使用 Maven Shade 插件將所有依賴(包括本地依賴)打包到最終的 JAR 文件中。

到此這篇關(guān)于Maven項目中將本地依賴庫打包到最終的JAR中的實現(xiàn)的文章就介紹到這了,更多相關(guān)Maven 本地依賴庫打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Security?OAuth?Client配置加載源碼解析

    Spring?Security?OAuth?Client配置加載源碼解析

    這篇文章主要為大家介紹了Spring?Security?OAuth?Client配置加載源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Spring Security 表單登錄功能的實現(xiàn)方法

    Spring Security 表單登錄功能的實現(xiàn)方法

    這篇文章主要介紹了Spring Security 表單登錄,本文將構(gòu)建在之前簡單的 Spring MVC示例 之上,因為這是設置Web應用程序和登錄機制的必不可少的。需要的朋友可以參考下
    2019-06-06
  • 淺析Java 9 Optional API 新增方法

    淺析Java 9 Optional API 新增方法

    本文我們介紹了Java 9 Optional Api新增的三個方法。or方法在Optional為空時返回Optional對象。 ifPresentOrElse()在值存在時執(zhí)行Consumer參數(shù),反之執(zhí)行另一個參數(shù)回調(diào)參數(shù)。感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • Activiti7整合Springboot使用記錄

    Activiti7整合Springboot使用記錄

    這篇文章主要介紹了Activiti7+Springboot使用整合記錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Java8實戰(zhàn)之Stream的延遲計算

    Java8實戰(zhàn)之Stream的延遲計算

    JDK中Stream的中間函數(shù)如 filter(Predicate super T>)是惰性求值的,filter并非對流中所有元素調(diào)用傳遞給它的Predicate,下面這篇文章主要給大家介紹了關(guān)于Java8實戰(zhàn)之Stream延遲計算的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 利用Springboot+vue實現(xiàn)圖片上傳至數(shù)據(jù)庫并顯示的全過程

    利用Springboot+vue實現(xiàn)圖片上傳至數(shù)據(jù)庫并顯示的全過程

    最近遇到個需求,需要將圖片在前端上傳到服務器進行保存,然后讀取到前端進行展示,這篇文章主要給大家介紹了關(guān)于利用Springboot+vue實現(xiàn)圖片上傳至數(shù)據(jù)庫并顯示的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 解決java-jar報錯:xxx.jar 中沒有主清單屬性的方法

    解決java-jar報錯:xxx.jar 中沒有主清單屬性的方法

    在使用 java -jar xxx.jar 命令運行 Java 應用程序時,遇到了以下錯誤:xxx.jar 中沒有主清單屬性,這個錯誤表示 JAR 文件缺少必要的啟動信息,本文將介紹該錯誤的原因以及如何通過修改 pom.xml 文件來解決,需要的朋友可以參考下
    2024-11-11
  • spring cloud學習入門之config配置教程

    spring cloud學習入門之config配置教程

    這篇文章主要給大家介紹了關(guān)于spring cloud學習入門之config配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring cloud具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-09-09
  • 淺談Java中static關(guān)鍵字的作用

    淺談Java中static關(guān)鍵字的作用

    這篇文章主要介紹了Java中static關(guān)鍵字的作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 詳細說明關(guān)于Java的數(shù)據(jù)庫連接(JDBC)

    詳細說明關(guān)于Java的數(shù)據(jù)庫連接(JDBC)

    這篇文章主要介紹了詳細說明關(guān)于Java的數(shù)據(jù)庫連接JDBC,JDBC是用Java語言向數(shù)據(jù)庫發(fā)送SQL語句,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09

最新評論