spring boot引入外部jar的坑

朱亮發表於2017-12-12

前言:由於專案需求,簡訊驗證碼的介面需要換成阿里大於的,但是尷尬的發現阿里大於的jar包沒有maven版本的,於是便開始了一上午的操蛋引包之路。按照套路來說,自然應該是百度一波,但是百度了好久,找了好多方案之後發現,沒一個有用的,而且文章的抄襲、拷貝十分嚴重,試了N種方案,都是錯的,都沒有將外部jar包打包到BOOK-INF資料夾下。最終,在第N次嘗試之後,終於在打的jar包裡將外部的jar包匯入進來。特此記錄下,防止再犯!!!

首先在新建libs資料夾(根目錄或者resource目錄下都可以),將需要引入的jar放進去

libs資料夾

然後再pom中加入如下配置,告訴maven匯入本地jar

	<dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>3.2.2</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/libs/aliyun-java-sdk-core-3.3.1.jar</systemPath>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
        <version>1.0.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/libs/aliyun-java-sdk-dysmsapi-1.0.0.jar</systemPath>
    </dependency>
複製程式碼

其中除了systemPath配置告訴maven引入的本地jar包的位置之外,其他的配置都可以隨便寫

劃重點!!!敲黑板!!!下面的一步配置也是最重要的一步,網上很多的教程缺了這樣一步之後就會導致雖然本地可以執行,但是隻要使用maven打包就不行,因為maven沒有將本地的jar也打到生成的包中

在pom中給spring boot的打包外掛設定一下includeSystemScope引數即可

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <includeSystemScope>true</includeSystemScope>
            </configuration>
        </plugin>
    </plugins>
</build>	複製程式碼

相關文章