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

posted @ 2021-12-08 10:38  怒吼的萝卜  阅读(4401)  评论(0编辑  收藏  举报