当前位置: 首页 > article >正文

解决idea使用maven打包时无法将本地lib库文件和resource目录中的资源文件打包进jar文件的问题!!!

一、问题复现

1)项目结构如下
在这里插入图片描述
我们看到项目中手动添加了本地lib资源,同时bootspring的配置文件和mapper文件也放在了resouces目录中。

2)上述结构的项目在使用maven打包时,最终生成的jar文件中将不包含lib库文件,甚至有时resouces目录中的资源文件也会缺失。
在这里插入图片描述
生成的jar包如下(缺失了lib和resources资源文件):
在这里插入图片描述
在这里插入图片描述

上述jar包在运行启动时会报错:
在这里插入图片描述

二、解决办法

在项目的pom.xml文件中添加编译选项,显示指定打包时需要包含的目录。
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.ruoyi</groupId>
        <artifactId>ypt-platform</artifactId>
        <version>3.6.3</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ruoyi.ypt</groupId>
    <artifactId>ypt-platform-water</artifactId>

    <description>
        xxxx模块
    </description>

    <dependencies>
        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        <!-- SpringBoot Actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- Swagger UI -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.fox.version}</version>
        </dependency>

        <!-- Mysql Connector -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>

        <!-- Ruoyi Common Redis -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-redis</artifactId>
        </dependency>

        <!-- RuoYi Common DataSource -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-datasource</artifactId>
        </dependency>

        <!-- spring cloud openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!-- RuoYi Common DataScope -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-datascope</artifactId>
        </dependency>

        <!-- RuoYi Common Log -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-log</artifactId>
        </dependency>

        <!-- RuoYi Common Swagger -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common-swagger</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- 引入Apache数学函数库 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math3</artifactId>
            <version>3.6.1</version>
        </dependency>

        <!-- 引入本地openplant(SIS)实时数据库访问类 -->
        <dependency>
            <groupId>op.net</groupId>
            <artifactId>com.magus.net</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/op.net.jar</systemPath>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <resources>
            <!-- 将本地lib库打包到最终的jar发布文件中 -->
            <resource>
                <directory>${project.basedir}/lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
            <!-- 将resource目录中的资源打包到最终的jar发布文件中 -->
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <targetPath>BOOT-INF/classes/</targetPath>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
    </build>

</project>

重新打包后的jar包内容如下:
在这里插入图片描述
在这里插入图片描述

运行结果正常:
在这里插入图片描述


http://www.kler.cn/a/416427.html

相关文章:

  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用
  • 十二、Pod的扩缩容-手动/自动-HPA
  • 【HarmonyOS NEXT】ACL 受限权限申请
  • 命令行配置Windows对接VPN网关
  • 【广告投放系统】头条可视化投放平台vue3+element-plus+vite落地历程和心得体会
  • 初识Hive
  • 41 基于单片机的小车行走加温湿度检测系统
  • spring +fastjson 的 rce
  • 【赵渝强老师】PostgreSQL的数据库
  • 线段树与树状数组 (C++)
  • OpenAI浅聊爬虫
  • # issue 7 TCP回声服务器和客户端
  • RPA:电商订单处理自动化
  • Rust format失败
  • 在Java中使用Apache POI导入导出Excel(二)
  • Milvus 2.5:全文检索上线,标量过滤提速,易用性再突破!
  • JS-对象-DOM-案例
  • request和websocket
  • python自动化测开面试题汇总(持续更新)
  • 【SpringBoot问题】IDEA中用Service窗口展示所有服务及端口的办法