SpringBoot:SpringBoot引入外部依賴包並打包的解決方式


由於項目需求,需要引用外部依賴jar包,並打進生成的項目jar包內。

新建libs文件夾

 pom中加入如下配置:

<dependency>
    <!-- 隨便寫!! -->
    <groupId>com.aliyun</groupId>
    <!-- 隨便寫!! -->
    <artifactId>aliyun-java-sdk-core</artifactId>
    <!-- 隨便寫!! -->
    <version>3.2.2</version>
    <scope>system</scope>
    <!-- 重點!! 使用pom.basedir 不要用project.basedir!!否則會報錯!! -->
    <!-- project.basedir : project.basedir 就是當前項目根目錄 -->
    <!-- pom.basedir :  pom.basedir指的是pom.xml文件所在的目錄, 也是項目根目錄-->
    <systemPath>${pom.basedir}/libs/aliyun-java-sdk-core-3.3.1.jar</systemPath>
  </dependency>

通過Maven導入外部jar包:

  scope:配置的參數作用是 system:被依賴項不會從maven倉庫下載,而是從本地文件系統拿。需要添加systemPath的屬性來定義路徑.

  systemPath:配置的作用是標注外部jar包的位置路徑,

  其他的配置都可以隨便寫

配置外部jar包一並打包進項目jar包

pom中加入如下配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <!-- 代表maven打包時會將外部引入的jar包,打包到項目jar內 -->
        <includeSystemScope>true</includeSystemScope>
      </configuration>
    </plugin>
  </plugins>
  <resources>
     <resource>
        <!-- directory 表示取該目錄下的文件 -->
        <directory>libs</directory>
        <!--targetPath 指定打包到哪個目錄下  默認是放到class目錄下-->
        <targetPath>/BOOT-INF/lib/</targetPath>
        <!-- 取符合格式的所有文件  *代表全部 -->
        <includes>
           <include>**/*.jar</include>
        </includes>
     </resource>
     <!-- 打包jar時解開下方的注釋,如果是編譯器運行項目時注釋掉下方配置
      因為編譯器運行項目時,項目會讀取外部依賴包的配置文件,
      項目本身的配置文件讀不到
--> <!--<resource> 把src/main/resources下的所有配置文件加載到打包后的BOOT-INF/classes文件中 <directory>src/main/resources</directory> <targetPath>BOOT-INF/classes</targetPath> </resource>--> </resources> </build>

重要配置includeSystemScope參數,打包所有引用jar包。

 

文章轉載至:https://www.jb51.net/article/130449.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM