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

如何覆盖Manifest中的Built-By属性?配置尝试无效求解

解决maven-jar-plugin自定义Manifest中Built-By条目无效的问题

你遇到的问题核心是配置键名不匹配或参数使用方式错误,以下是两种可行的修复方案:

方案一:直接在manifest节点下配置builtBy参数

maven-jar-plugin的manifest节点提供了builtBy参数,直接配置即可覆盖默认的Built-By值:

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <builtBy>TESTING</builtBy> <!-- 直接指定自定义Built-By值 -->
            </manifest>
            <manifestEntries>
                <Implementation-Version>${project.version}</Implementation-Version>
                <Implementation-Build>${project.version}.${git.commit.id.abbrev}</Implementation-Build>
            </manifestEntries>
        </archive>
        <resources>
            <resource> <!-- 修正笔误:将entityReference改为resource -->
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include> <!-- 修正笔误:补充.号 -->
                </includes>
            </resource>
        </resources>
    </configuration>
</plugin>

方案二:在manifestEntries节点中使用正确的键名

Manifest标准条目名称是Built-By(带横杠),而非你配置的BuiltBy(驼峰),修正键名即可生效:

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
        <archive>
            <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
            <manifestEntries>
                <Implementation-Version>${project.version}</Implementation-Version>
                <Implementation-Build>${project.version}.${git.commit.id.abbrev}</Implementation-Build>
                <Built-By>TESTING</Built-By> <!-- 使用标准条目名称 -->
            </manifestEntries>
        </archive>
        <resources>
            <resource> <!-- 修正笔误:将entityReference改为resource -->
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include> <!-- 修正笔误:补充.号 -->
                </includes>
            </resource>
        </resources>
    </configuration>
</plugin>

额外说明

  • 默认情况下addBuildEnvironmentEntries为true,maven会自动填充Built-By为当前构建用户,但上述两种配置的自定义值都会覆盖这个默认生成的条目,无需手动关闭该参数。
  • 你的resources配置中存在两处笔误:entityReference应为resource,**/*properties应为**/*.properties,已在方案中修正,否则资源过滤配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:05:03