springboot 打包出来的 jar 包的名字是在哪儿决定的

Spring Boot 项目中,打包出来的 JAR 包名称主要由以下几个地方决定:

1. Maven 项目(pom.xml)

pom.xml 文件中,JAR 包名称主要由以下配置决定:

xml 复制代码
<project>
    <!-- 最终JAR包名称格式:${project.build.finalName}.jar -->
    
    <!-- 方式1:通过 finalName 直接指定 -->
    <build>
        <finalName>my-custom-app</finalName>
    </build>
    
    <!-- 方式2:通过 artifactId 和 version 组合 -->
    <artifactId>my-springboot-app</artifactId>
    <version>1.0.0</version>
    <!-- 默认JAR包名称:my-springboot-app-1.0.0.jar -->
</project>

2. Gradle 项目(build.gradle)

build.gradle 文件中:

gradle 复制代码
// 方式1:通过 archivesBaseName 设置
jar {
    archivesBaseName = 'my-custom-app'
}

// 方式2:通过 bootJar 配置(Spring Boot 专用)
bootJar {
    archiveFileName = "${archiveBaseName.get()}-${archiveVersion.get()}.jar"
}

// 方式3:在 gradle.properties 中设置
// archivesBaseName=my-app

3. Spring Boot Maven Plugin 配置

如果使用了 Spring Boot Maven Plugin,也可以在其中配置:

xml 复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <finalName>my-springboot-app</finalName>
            </configuration>
        </plugin>
    </plugins>
</build>

4. 默认命名规则

如果没有特殊配置,默认的命名规则是:

  • Maven : ${artifactId}-${version}.jar
  • Gradle : ${baseName}-${version}.jar

5. 查看和验证

打包后可以通过以下命令查看生成的 JAR 包信息:

bash 复制代码
# Maven
mvn clean package

# Gradle
gradle clean build

总结 :主要查看项目的 pom.xml(Maven)或 build.gradle(Gradle)文件中的相关配置,特别是 finalNameartifactIdversion 等配置项。

相关推荐
葫芦和十三4 小时前
图解 MongoDB 05|文档模型设计:内嵌 vs 引用,反范式不是免费午餐
后端·mongodb·agent
不能放弃治疗7 小时前
单 Agent 实现模式
后端
IT_陈寒10 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
fliter10 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
用户35218024547511 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
fliter11 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪11 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter11 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶12 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿12 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端