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

无法修复‘/build/result命名空间无映射Action’问题,Bamboo添加Action的正确方法?

解决Bamboo插件中Action未映射到[/build/result]命名空间的问题

我刚帮几个开发者排查过类似的Bamboo Action配置问题,你遇到的“没有为命名空间[/build/result]映射Action”错误,核心原因是xwork配置没有和Bamboo的build result上下文正确绑定,或者缺少关键的配置项。下面一步步给你梳理正确的配置方式:

1. 修正xwork包的命名空间与继承

Bamboo的作业结果页面默认使用/build/result命名空间,你的xwork package必须显式声明这个命名空间,同时继承Bamboo提供的buildResultView父包(它包含了作业结果页面的上下文支持)。修改后的配置应该是:

<xwork key="viewRobotReport" name="View Robot Report">
    <package name="RobotPlugin" namespace="/build/result" extends="buildResultView">
        <action name="viewRobotReport" class="robot.RobotReport">
            <param name="buildResultKey">${buildResultKey}</param>
            <result name="success" type="freemarker">viewRobotReport.ftl</result>
        </action>
    </package>
</xwork>

这里一定要加上namespace="/build/result",否则Action不会被映射到正确的路径下。另外,添加param节点用来接收Bamboo传递的buildResultKey参数,这是后续获取工件的关键。

2. 确保Action类继承Bamboo的基础Action

你的RobotReport类必须继承Bamboo提供的BuildActionSupport,这样才能自动获取作业结果的上下文信息,否则Bamboo框架无法识别这个Action。示例代码如下:

package robot;

import com.atlassian.bamboo.struts2.BuildActionSupport;
import com.atlassian.bamboo.build.BuildResult;

public class RobotReport extends BuildActionSupport {
    private BuildResult buildResult;

    @Override
    public String execute() throws Exception {
        // 在这里通过buildResult获取工件路径,准备HTML报告的渲染逻辑
        return SUCCESS;
    }

    // 必须提供getter/setter,让Bamboo注入buildResult对象
    public BuildResult getBuildResult() {
        return buildResult;
    }

    public void setBuildResult(BuildResult buildResult) {
        this.buildResult = buildResult;
    }
}

3. 配置作业页面的标签页(Web Item)

要在作业页面新增标签页,还需要在atlassian-plugin.xml中添加web-item配置,把标签页关联到你的Action:

<web-item key="robot-report-tab" name="Robot Report Tab" section="build.result.tabs" weight="100">
    <description>查看Robot生成的HTML测试报告</description>
    <label>Robot Report</label>
    <link>/build/result/viewRobotReport.action?buildResultKey=$buildResultKey</link>
</web-item>

这里的section="build.result.tabs"指定了标签页的位置,link中的路径必须和xwork配置的命名空间、Action名称完全对应,$buildResultKey是Bamboo模板变量,会自动填充当前作业的结果标识。

4. 常见排查点

  • 检查atlassian-plugin.xml根元素的plugins-version是否和你的Bamboo版本兼容(比如Bamboo 8.x对应plugins-version="8");
  • 执行atlas-clean && atlas-run清理缓存后重新部署插件,避免旧配置干扰;
  • 查看Bamboo日志(target/bamboo-home/logs/atlassian-bamboo.log),里面会有更详细的Action映射失败原因,比如类找不到、参数注入错误等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:23:39