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

如何用Spring Boot与Gradle配置MANIFEST.MF并读取Gradle配置值

用Gradle和Spring Boot自定义MANIFEST.MF头信息

当然可以实现。你可以通过Gradle的属性定义和jar/bootJar任务配置,从settings.gradle和build.gradle中读取指定值,写入MANIFEST.MF文件。具体步骤如下:

1. 在settings.gradle中定义全局属性

把需要全局共享的属性(比如Specification-Title、Specification-Vendor)放在settings.gradle里,方便多模块项目复用:

rootProject.name = "your-project-name"
ext {
    specificationTitle = "你的应用规范名称"
    specificationVendor = "你的厂商/公司名称"
}

2. 在build.gradle中配置版本属性和MANIFEST生成

在项目的build.gradle中定义版本属性,同时配置jar和bootJar任务(分别对应普通jar和Spring Boot可执行jar)的MANIFEST属性:

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.0'
    id 'io.spring.dependency-management' version '1.1.4'
}

// 定义项目专属的版本属性
ext {
    specificationVersion = "1.0.0"
}

// 配置普通jar的MANIFEST.MF
jar {
    manifest {
        attributes(
            'Name': rootProject.name,
            'Specification-Title': rootProject.ext.specificationTitle,
            'Specification-Version': project.ext.specificationVersion,
            'Specification-Vendor': rootProject.ext.specificationVendor
        )
    }
}

// 配置Spring Boot可执行jar的MANIFEST.MF
bootJar {
    manifest {
        attributes(
            'Name': rootProject.name,
            'Specification-Title': rootProject.ext.specificationTitle,
            'Specification-Version': project.ext.specificationVersion,
            'Specification-Vendor': rootProject.ext.specificationVendor
        )
    }
}

3. 验证结果

执行./gradlew bootJar或./gradlew jar构建后,打开生成的jar包中的META-INF/MANIFEST.MF文件,就能看到自定义的头信息已经正确写入。

内容的提问来源于stack exchange,提问作者Fábio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:55:27