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

maven使用systemPath方式加載本地jar的實現(xiàn)

 更新時間:2025年06月10日 09:18:22   作者:xixingzhe2  
本文介紹Maven通過systemPath加載本地第三方JAR的方法,需配置依賴和插件以確保打包和運行,具有一定的參考價值,感興趣的可以了解一下

1、背景

在對接第三方廠商時,會提供對應jar,maven公開倉庫上沒有發(fā)布,提供的處理方法。

  • 上傳的公司私服。
  • systemPath方式加載本地jar。

本文要講的就是使用systemPath方式加載本地jar。

2、使用

示例如下

2.1 下載第三方jar

jar-local-1.0.0.jar

jar中提供了MyStringUtils.generateUUID方法。

2.2 項目引入

2.2.1 引入依賴

<dependency>
    <groupId>com.ybw</groupId>
    <artifactId>jar-local</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/jar-local-1.0.0.jar</systemPath>
</dependency>
  • groupId:此名稱可自定義,com.ybw為自定義的名稱;
  • artifactId:此名稱可自定義,jar-local為自定義的名稱,不過這個最好與加載的jar(jar-local-1.0.0.jar)名稱保持一致。
  • version:此版本號可自定義,不過好與加載的jar保持一致。
  • scope:使用system。
  • systemPath:本地jar文件你放在系統(tǒng)文件的目錄,${project.basedir}表示項目根目錄。lib和src為同級目錄。

 2.2.2 插件配置

spring boot項目

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <configuration>
                <mainClass>com.ybw.jar.load.local.JarLocalApplication</mainClass>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
            <executions>
                <execution>
                    <id>repackage</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<includeSystemScope>true</includeSystemScope>作用:

代表maven打包時會將外部引入的jar包(比如在根目錄下或resource文件下新加外部jar包)打包到項目jar,在服務器上項目才能運行,不加此配置,本地可以運行,因為本地可以再lib下找到外部包,但是服務器上jar中是沒有的。

2.2.3 使用本地jar方法

已可以正常使用MyStringUtils.generateUUID()

package com.ybw.jar.load.local.utils;

import com.ybw.jar.local.utils.MyStringUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

/**
 * 依賴測試
 *
 * @author ybw
 * @version V1.0
 * @className MyStringUtilsTest
 * @date 2022/4/24
 **/
@Slf4j
public class MyStringUtilsTest {

    @Test
    public void print() {
        log.info("{}", MyStringUtils.generateUUID());
    }
}

3、擴展(scope屬性)

依賴范圍控制哪些依賴在哪些classpath 中可用,哪些依賴包含在一個應用中。

  • compile (編譯)

compile是默認的范圍;如果沒有提供一個范圍,那該依賴的范圍就是編譯范圍。編譯范圍依賴在所有的classpath中可用,同時它們也會被打包。

  • provided (已提供)

provided 依賴只有在當JDK 或者一個容器已提供該依賴之后才使用。例如, 如果你開發(fā)了一個web 應用,你可能在編譯 classpath 中需要可用的Servlet API 來編譯一個servlet,但是你不會想要在打包好的WAR 中包含這個Servlet API;這個Servlet API JAR 由你的應用服務器或者servlet 容器提供。已提供范圍的依賴在編譯classpath (不是運行時)可用。它們不是傳遞性的,也不會被打包。

  • runtime (運行時)

runtime 依賴在運行和測試系統(tǒng)的時候需要,但在編譯的時候不需要。比如,你可能在編譯的時候只需要JDBC API JAR,而只有在運行的時候才需要JDBC驅動實現(xiàn)。

  • test (測試)

test范圍依賴 在一般的編譯和運行時都不需要,它們只有在測試編譯和測試運行階段可用。

  • system (系統(tǒng))

system范圍依賴與provided類似,但是你必須顯式的提供一個對于本地系統(tǒng)中JAR文件的路徑。這么做是為了允許基于本地對象編譯,而這些對象是系統(tǒng)類庫的一部分。這樣的構建應該是一直可用的,Maven 也不會在倉庫中去尋找它。如果你將一個依賴范圍設置成系統(tǒng)范圍,你必須同時提供一個systemPath元素。注意該范圍是不推薦使用的(建議盡量去從公共或定制的 Maven 倉庫中引用依賴)。

  • import(導入)

import 只能在pom文件的<dependencyManagement>中使用,從而引入其他的pom文件中引入依賴,如:在Spring boot 項目的POM文件中,我們可以通過在POM文件中繼承 Spring-boot-starter-parent來引用Srping boot默認依賴的jar包,如下:

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.6.7</version>
</parent>

但是,通過上面的parent繼承的方法,只能繼承一個 spring-boot-start-parent。實際開發(fā)中,用戶很可能需要繼承自己公司的標準parent配置,這個時候可以使用 scope=import 來實現(xiàn)多繼承。代碼如下:

<dependencyManagement>
	 <dependencies>
	     <dependency>
	         <!-- Import dependency management from Spring Boot -->
	         <groupId>org.springframework.boot</groupId>
	         <artifactId>spring-boot-dependencies</artifactId>
	         <version>2.6.7</version>
	         <type>pom</type>
	         <scope>import</scope>
	    </dependency>
	</dependencies>
</dependencyManagement>

通過上面方式,就可以獲取spring-boot-dependencies.2.6.7.pom文件中dependencyManagement配置的jar包依賴。如果要繼承多個,可以在dependencyManagement中添加,如:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.6.7</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

到此這篇關于maven使用systemPath方式加載本地jar的實現(xiàn)的文章就介紹到這了,更多相關maven 加載本地jar內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springSecurity自定義登錄接口和JWT認證過濾器的流程

    springSecurity自定義登錄接口和JWT認證過濾器的流程

    這篇文章主要介紹了springSecurity自定義登陸接口和JWT認證過濾器的相關資料,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • @MapperScan注解與@Mapper注解的使用

    @MapperScan注解與@Mapper注解的使用

    這篇文章主要介紹了@MapperScan注解與@Mapper注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解Spring Boot讀取配置文件與配置文件優(yōu)先級

    詳解Spring Boot讀取配置文件與配置文件優(yōu)先級

    這篇文章主要介紹了詳解Spring Boot讀取配置文件與配置文件優(yōu)先級,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java 和 Scala 如何調用變參

    Java 和 Scala 如何調用變參

    這篇文章主要介紹了Java 和 Scala 如何調用變參,幫助大家更好的理解和學習Java與Scala,感興趣的朋友可以了解下
    2020-09-09
  • Java如何獲取List<String>中的String詳解

    Java如何獲取List<String>中的String詳解

    工作了這么長時間了,一直沒有記錄的習慣,以至于導致我即便是查過的東西總會忘記,下面這篇文章主要給大家介紹了關于Java如何獲取List<String>中String的相關資料,需要的朋友可以參考下
    2022-02-02
  • Java如何生成隨機數(shù)不了解下嗎

    Java如何生成隨機數(shù)不了解下嗎

    我們在學習 Java 基礎時就知道可以生成隨機數(shù),可以為我們枯燥的學習增加那么一丟丟的樂趣,本文就來和大家介紹Java生成隨機數(shù)的常用方法,需要的可以參考下
    2023-08-08
  • Java中Tuple的功能及使用詳解

    Java中Tuple的功能及使用詳解

    Java中的Tuple是一種非常有用的數(shù)據(jù)結構,它可以讓開發(fā)者在處理多個數(shù)據(jù)元素時更加方便和高效,通過Tuple,我們可以將多個變量打包成一個對象,從而減少了代碼量,提高了代碼可讀性,這篇文章主要介紹了Java中Tuple的功能及使用場景,需要的朋友可以參考下
    2024-01-01
  • spring中向一個單例bean中注入非單例bean的方法詳解

    spring中向一個單例bean中注入非單例bean的方法詳解

    Spring是先將Bean對象實例化之后,再設置對象屬性,所以會先調用他的無參構造函數(shù)實例化,每個對象存在一個map中,當遇到依賴,就去map中調用對應的單例對象,這篇文章主要給大家介紹了關于spring中向一個單例bean中注入非單例bean的相關資料,需要的朋友可以參考下
    2021-07-07
  • Java實現(xiàn)數(shù)據(jù)庫圖片上傳與存儲功能

    Java實現(xiàn)數(shù)據(jù)庫圖片上傳與存儲功能

    在現(xiàn)代的Web開發(fā)中,上傳圖片并將其存儲在數(shù)據(jù)庫中是常見的需求之一,本文將介紹如何通過Java實現(xiàn)圖片上傳,存儲到數(shù)據(jù)庫的完整過程,希望對大家有所幫助
    2025-03-03
  • JAVA 對接騰訊云直播的實現(xiàn)

    JAVA 對接騰訊云直播的實現(xiàn)

    這篇文章主要介紹了JAVA 對接騰訊云直播的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06

最新評論

华池县| 怀安县| 蓝山县| 邯郸县| 紫阳县| 湘乡市| 大埔区| 拜泉县| 渝北区| 繁峙县| 确山县| 犍为县| 肥东县| 理塘县| 三江| 长汀县| 茂名市| 封开县| 吉首市| 佛坪县| 凌海市| 古田县| 葫芦岛市| 芜湖县| 呼伦贝尔市| 长阳| 宁海县| 烟台市| 天全县| 增城市| 青冈县| 嘉荫县| 红桥区| 容城县| 楚雄市| 阜康市| 正宁县| 渑池县| 原平市| 吉隆县| 阿坝县|