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

如何在IntelliJ IDEA中为Spring Boot项目构建可正确读取配置的jar包

问题根因定位
  • 配置文件未被正确打包进jar包的classpath:IntelliJ IDEA运行项目时会默认将项目的资源目录加入运行时classpath,但若资源目录未被正确标记、或打包配置中排除了properties文件,构建的jar包就会缺失配置文件,Spring Boot找不到指定配置就会使用默认的8080端口。
  • 未使用Spring Boot官方打包插件:使用普通Java打包插件构建的jar包不会整合依赖、也不会按Spring Boot的目录结构打包资源,会导致配置和依赖加载失败。
  • 运行时配置被覆盖:启动jar包时传入的命令行参数、系统环境变量可能覆盖了配置文件中指定的激活环境和端口配置。
解决步骤

1. 确认资源目录配置

打开IntelliJ IDEA的File -> Project Structure -> Modules -> 对应项目模块 -> Sources,检查src/main/resources目录是否被标记为Resources Root,如果没有则右键该目录,选择Resources完成标记。

2. 确认打包配置包含资源文件

Maven项目(pom.xml)

检查build节点的resources配置,确保没有排除properties文件:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.json</include> <!-- 适配你的firebase配置文件 -->
            </includes>
        </resource>
    </resources>
</build>

Gradle项目(build.gradle)

检查是否有排除resources目录的配置,Spring Initializr默认生成的配置会自动包含资源文件,若自行添加了exclude规则匹配properties文件需要删除。

3. 配置Spring Boot官方打包插件

Maven项目(pom.xml)

添加spring-boot-maven-plugin插件,确保打包后的jar是可执行的Spring Boot结构:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>对应你的Spring Boot版本号</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Gradle项目(build.gradle)

引入Spring Boot插件:

plugins {
    id 'org.springframework.boot' version '对应你的Spring Boot版本号'
    id 'io.spring.dependency-management' version '1.1.0'
    id 'java'
}

4. 执行打包命令

不要使用IDEA自带的Build Artifact功能,使用官方构建命令:

  • Maven项目:在项目根目录执行mvn clean package,打包完成后jar包生成在target目录下
  • Gradle项目:在项目根目录执行gradle clean bootJar,打包完成后jar包生成在build/libs目录下

5. 验证打包结果和运行

打包完成后可以执行命令检查配置文件是否在jar包内:jar tf 你的jar包名称.jar | grep properties,输出中能看到application.properties、application-dev.properties、application-prod.properties三个文件即为打包正常。
运行jar包时可以通过命令显式指定激活环境,避免配置被覆盖:

  • 运行生产环境:java -jar 你的jar包名称.jar --spring.profiles.active=prod
  • 运行开发环境:java -jar 你的jar包名称.jar --spring.profiles.active=dev
    启动时查看日志,会打印The following 1 profile is active: "xxx"以及启动端口,确认配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:54:09