欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用maven引入第三方j(luò)ar包以及打包

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

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

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

當(dāng)然公司如果是有私服的,可以直接將jar包上傳到私服。然后直接通過(guò)pom依賴簡(jiǎn)單的聲明即可。

因此本篇文章重點(diǎn)針對(duì)于這兩點(diǎn)進(jìn)行講解

目錄

如下是個(gè)maven項(xiàng)目,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>

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

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

打包插件:<includeSystemScope>true</includeSystemScope> 這個(gè)非常重要,是將外部依賴打包進(jìn)來(lái)的,如果沒(méi)有該配置,打出來(lái)的jar包是不包含外部jar包的,從而可能會(huì)導(dǎo)致運(yùn)行異常!

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

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

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

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

然后在BOOT-INF的classes/lib目錄下也有個(gè)這個(gè)jar包,這個(gè)是源碼當(dāng)中的jar包,上面的是打出來(lái)的jar包運(yùn)行的時(shí)候所要依賴的jar包。正常來(lái)說(shuō)我們就可以將源碼當(dāng)中的jar包給去掉,這樣就可以減小jar包的大小。

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

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

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

java -jar 依然是可以運(yùn)行起來(lái)的

以上就是利用maven引入第三方j(luò)ar包以及打包的詳細(xì)內(nèi)容,更多關(guān)于maven引入第三方j(luò)ar包的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中的MultipartFile接口和File類解讀

    Java中的MultipartFile接口和File類解讀

    本文主要介紹了Java中的File類和Spring框架中的MultipartFile接口,File類提供了對(duì)文件和目錄操作的方法,如創(chuàng)建、刪除、重命名、判斷文件是否存在等,MultipartFile接口用于處理文件上傳,提供了獲取上傳文件信息和保存上傳文件的方法
    2025-02-02
  • springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    這篇文章主要介紹了springboot 與異步任務(wù),定時(shí)任務(wù),郵件任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • java多媒體文件編碼 處理工具類代碼實(shí)例

    java多媒體文件編碼 處理工具類代碼實(shí)例

    這篇文章主要介紹了java多媒體文件編碼 處理工具類使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • springCloud項(xiàng)目搭建流程步驟分解

    springCloud項(xiàng)目搭建流程步驟分解

    SpringCloud 作為當(dāng)下最為流行的微服務(wù)框架,也越來(lái)越多的人去學(xué)習(xí)和使用這個(gè)框架。下面,我將帶大家簡(jiǎn)單地認(rèn)識(shí)一下 SpringCloud 框架,以及如何來(lái)搭建一個(gè) SpringCloud 項(xiàng)目環(huán)境的教程
    2022-05-05
  • MyBatis插入Insert、InsertSelective的區(qū)別及使用心得

    MyBatis插入Insert、InsertSelective的區(qū)別及使用心得

    這篇文章主要介紹了MyBatis插入Insert、InsertSelective的區(qū)別及使用心得,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring事務(wù)捕獲異常后依舊回滾的解決

    Spring事務(wù)捕獲異常后依舊回滾的解決

    本文主要介紹了Spring事務(wù)捕獲異常后依舊回滾的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java 注解@PostConstruct的原理及使用場(chǎng)景

    Java 注解@PostConstruct的原理及使用場(chǎng)景

    @PostConstruct 是 Java 中用于標(biāo)記初始化方法的注解,本文將詳細(xì)講解 @PostConstruct 的原理、使用場(chǎng)景及最佳實(shí)踐,感興趣的朋友一起看看吧
    2025-04-04
  • java -jar后臺(tái)啟動(dòng)的四種方式小結(jié)

    java -jar后臺(tái)啟動(dòng)的四種方式小結(jié)

    這篇文章主要介紹了java -jar后臺(tái)啟動(dòng)的四種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java8 stream中Collectors.toMap空指針問(wèn)題及解決

    java8 stream中Collectors.toMap空指針問(wèn)題及解決

    這篇文章主要介紹了java8 stream中Collectors.toMap空指針問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 解決定時(shí)任務(wù)@Scheduled沒(méi)有準(zhǔn)時(shí)執(zhí)行的原因及分析

    解決定時(shí)任務(wù)@Scheduled沒(méi)有準(zhǔn)時(shí)執(zhí)行的原因及分析

    這篇文章主要介紹了解決定時(shí)任務(wù)@Scheduled沒(méi)有準(zhǔn)時(shí)執(zhí)行的原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論