最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用maven引入第三方jar包以及打包

 更新時間:2023年05月19日 10:36:34   作者:怪?咖@  
Maven是通過倉庫對依賴進行管理的,當Maven項目需要某個依賴時,只要其POM中聲明了依賴的坐標信息,Maven就會自動從倉庫中去下載該構(gòu)件使用,如何將jar引用到項目,并且能夠讓項目正常調(diào)用該jar包的方法,本篇文章重點針對于這兩點進行講解

我們知道,Maven 是通過倉庫對依賴進行管理的,當 Maven 項目需要某個依賴時,只要其 POM 中聲明了依賴的坐標信息,Maven 就會自動從倉庫中去下載該構(gòu)件使用。但在實際的開發(fā)過程中,經(jīng)常會遇到一種情況:對接第三方廠商,人家給了一個jar包,然后項目需要使用這個jar包,但是這個jar包并沒有上傳到遠程倉庫,這時候就不能使用簡單的pom依賴引用了,因此存在兩個問題:

  • 如何將jar引用到項目,并且能夠讓項目正常調(diào)用該jar包的方法
  • 外部引用的jar如何打包進項目?

當然公司如果是有私服的,可以直接將jar包上傳到私服。然后直接通過pom依賴簡單的聲明即可。

因此本篇文章重點針對于這兩點進行講解

目錄

如下是個maven項目,java-demo.jar是我們要引入的jar包。

<!--外部依賴-->
<dependency>
  <groupId>com.gzl.cn</groupId>
  <artifactId>java-demo</artifactId>
  <!--依賴范圍-->
  <scope>system</scope>
  <version>1.0-SNAPSHOT</version>
  <!--依賴所在位置-->
  <systemPath>${project.basedir}/src/main/resources/lib/java-demo.jar</systemPath>
</dependency>

在以上配置中,除了依賴的坐標信息外,外部依賴還使用了 scope 和 systemPath 兩個元素。

scope 表示依賴范圍,這里取值必須是 system,即系統(tǒng)。systemPath 表示依賴的本地構(gòu)件的位置。

打包插件:<includeSystemScope>true</includeSystemScope> 這個非常重要,是將外部依賴打包進來的,如果沒有該配置,打出來的jar包是不包含外部jar包的,從而可能會導致運行異常!

<build>
      <!-- 打出來的jar包名 -->
    <finalName>maven-demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.4.2</version>
            <configuration>
                <!-- 主啟動類全類名 -->
                <mainClass>com.gzl.cn.App</mainClass>
                <!-- 這個配置很重要,是將外部依賴打包進來的,如果沒有該配置,打出來的jar包是不包含外部jar包的 -->
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                  <!--自定義 id -->
                  <id>repackage</id>
                    <!--插件目標 -->
                  <goals>
                    <goal>repackage</goal>
                  </goals>
            </execution>
          </executions>
        </plugin>
    </plugins>
  </build>

但是現(xiàn)在存在一個問題,打出來的jar包可以用,但是特別大。

如下是jar包解壓后的目錄:

我們可以將jar解壓會發(fā)現(xiàn)BOOT-INF的lib目錄下是有一個第三方引用的jar。

然后在BOOT-INF的classes/lib目錄下也有個這個jar包,這個是源碼當中的jar包,上面的是打出來的jar包運行的時候所要依賴的jar包。正常來說我們就可以將源碼當中的jar包給去掉,這樣就可以減小jar包的大小。

添加如下依賴,排除jar的打包

<build>
	<resources>
	  <resource>
	    <directory>src/main/resources</directory>
	    <filtering>true</filtering>
	    <excludes>
	        <exclude>**/lib/**</exclude>
	    </excludes>
	  </resource>
	</resources>
	...以下省略
</build>

重新進行打包后會然后將jar解壓觀察源代碼當中已經(jīng)沒有l(wèi)ib目錄了。

java -jar 依然是可以運行起來的

以上就是利用maven引入第三方jar包以及打包的詳細內(nèi)容,更多關于maven引入第三方jar包的資料請關注腳本之家其它相關文章!

相關文章

  • Spring Boot使用和配置Druid

    Spring Boot使用和配置Druid

    本篇文章主要介紹了Spring Boot使用和配置Druid,Druid號稱是Java語言中最好的數(shù)據(jù)庫連接池,并且能夠提供強大的監(jiān)控和擴展功能
    2017-04-04
  • Java讀取數(shù)據(jù)庫表的示例代碼

    Java讀取數(shù)據(jù)庫表的示例代碼

    這篇文章主要介紹了Java讀取數(shù)據(jù)庫表,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 實現(xiàn)了基于TCP的Java Socket編程實例代碼

    實現(xiàn)了基于TCP的Java Socket編程實例代碼

    這篇文章主要介紹了基于TCP的Java Socket編程實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • 淺談java中Map的用法

    淺談java中Map的用法

    Map簡介:將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。此接口取代 Dictionary 類,后者完全是一個抽象類,而不是一個接口。
    2015-09-09
  • myBatis實現(xiàn)三級嵌套復雜對象的賦值問題

    myBatis實現(xiàn)三級嵌套復雜對象的賦值問題

    這篇文章主要介紹了myBatis實現(xiàn)三級嵌套復雜對象的賦值問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java?深入學習static關鍵字和靜態(tài)屬性及方法

    Java?深入學習static關鍵字和靜態(tài)屬性及方法

    這篇文章主要介紹了Java?深入學習static關鍵字和靜態(tài)屬性及方法,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • Java多線程并發(fā)之ReentrantLock

    Java多線程并發(fā)之ReentrantLock

    這篇文章主要介紹了Java?多線程并發(fā)ReentrantLock,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2023-04-04
  • 深入分析Spring BeanDefinition的構(gòu)造元信息

    深入分析Spring BeanDefinition的構(gòu)造元信息

    Bean Definition是一個包含Bean元數(shù)據(jù)的對象,它描述了如何創(chuàng)建Bean實例、Bean屬性的值以及Bean之間的依賴關系,本文將帶大家深入分析Spring BeanDefinition的構(gòu)造元信息,需要的朋友可以參考下
    2024-01-01
  • 基于Java實現(xiàn)進制轉(zhuǎn)換工具類的示例代碼

    基于Java實現(xiàn)進制轉(zhuǎn)換工具類的示例代碼

    這篇文章主要為大家詳細介紹了如何基于Java實現(xiàn)進制轉(zhuǎn)換工具類,從而實現(xiàn)減少參數(shù)長度的效果,文中的示例代碼講解詳細,需要的可以參考一下
    2023-02-02
  • JAVA操作MongoDB數(shù)據(jù)庫實例教程

    JAVA操作MongoDB數(shù)據(jù)庫實例教程

    MongoDB是一個文檔型數(shù)據(jù)庫,是NOSQL家族中最重要的成員之一,下面這篇文章主要給大家介紹了關于JAVA操作MongoDB數(shù)據(jù)庫的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05

最新評論

金坛市| 崇明县| 称多县| 建湖县| 兴义市| 辽阳市| 丰顺县| 武乡县| 白玉县| 富裕县| 宁蒗| 突泉县| 钟祥市| 开化县| 隆尧县| 海宁市| 江津市| 乌拉特中旗| 东阿县| 阳朔县| 水富县| 资源县| 临猗县| 新宁县| 邹平县| 西畴县| 吉木萨尔县| 晋中市| 贞丰县| 伊春市| 贺州市| 西乌| 红安县| 二连浩特市| 轮台县| 菏泽市| 嘉义县| 临颍县| 离岛区| 凌源市| 桐庐县|