You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot控制台启动Jar包时Swagger无法访问问题求助

问题原因

你用maven-assembly-plugin构建的jar-with-dependencies包,会把所有依赖的类和资源合并到一个Jar中,破坏了Spring Boot应用所需的类路径结构和资源加载规则。Swagger UI的静态资源(HTML/CSS/JS文件)无法被Spring Boot的资源处理器正确识别,导致访问失败;而业务接口因为是Java类编译后直接打包,所以不受影响。

解决方案:改用Spring Boot Maven Plugin构建可执行Jar

Spring Boot官方提供的spring-boot-maven-plugin会生成符合Spring Boot规范的可执行Fat Jar,自动处理类加载、资源打包等问题,确保Swagger UI正常工作。

步骤1:修改pom.xml的build配置

移除maven-assembly-plugin的所有配置,保留并优化spring-boot-maven-plugin:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring.version}</version> <!-- 和Spring版本保持一致 -->
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
                <mainClass>com.rad.TestProjectApplication</mainClass> <!-- 显式指定主类,可选但更稳妥 -->
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal> <!-- 必须添加这个执行目标,生成可执行Jar -->
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

步骤2:构建Jar包

执行Maven命令:

mvn clean package

打包完成后,在target目录下会生成testproject-1.0-SNAPSHOT.jar(不带jar-with-dependencies后缀)。

步骤3:启动Jar包

用以下命令启动应用:

java -jar target/testproject-1.0-SNAPSHOT.jar

此时访问localhost:8080/swagger就能正常打开Swagger UI了。

步骤4:调整Dockerfile

将Dockerfile中的启动指令修改为:

CMD ["java", "-jar", "/testrepository/testproject-1.0-SNAPSHOT.jar"]

(注意替换为实际生成的Jar包名称)

补充说明

如果需要保留自定义的打包配置,也可以使用Spring Boot插件的spring-boot:repackage目标,或者使用maven-shade-plugin(但需要配置过滤规则避免冲突),但最稳妥的方式还是直接用Spring Boot官方插件,适配性最好。

内容的提问来源于stack exchange,提问作者Rad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:35:21