小编典典

如何使用新链接和图标扩展Jenkins工作页面

jenkins

我正在开发我的第一个Jenkins插件,并按照上的教程进行操作
wiki.jenkins-ci.org。添加BuildStep并
生成结果后,我现在要将它们发布给用户。我想
通过作业页面和相应的结果视图
页面上的新链接条目来执行此操作。

不幸的是,我没有在左侧找到导航栏的正确扩展点,在中心没有找到
主要的导航链接,也没有找到新的
目标页面。有人可以向我指出正确的方向,还是可以给我链接到
说明这种情况的教程或博客文章?

谢谢


阅读 314

收藏
2020-07-25

共1个答案

小编典典

经过反复试验,我找到了解决方案。

总而言之,您在项目中需要两个不同的东西:

1)从ProminentProjectAction继承的类:

import hudson.model.ProminentProjectAction;

public class MyProjectAction implements ProminentProjectAction {

    @Override
    public String getIconFileName() {
        // return the path to the icon file
        return "/images/jenkins.png";
    }

    @Override
    public String getDisplayName() {
        // return the label for your link
        return "MyActionLink";
    }

    @Override
    public String getUrlName() {
        // defines the suburl, which is appended to ...jenkins/job/jobname
        return "myactionpage";
    }
}

2)更重要的是,您应以某种方式将此操作添加到
项目中。

就我而言,我希望仅当
插件的相关构建步骤针对实际项目进行配置时才显示链接。因此,我上了Builder类,并
重写了getProjectActionsMethod。

public class MyBuilder extends Builder {

    ...

    @Override
    public Collection<? extends Action> getProjectActions(AbstractProject<?,?> project) {
        List<Action> actions = new ArrayList<>();
        actions.add(new MyProjectAction());

        return actions;
    }
}

也许这还不是完美的解决方案(因为我仍在试图弄清楚所有工件如何协同工作),但它可能为希望实施相同工件的人们提供了一个良好的起点。

单击链接后加载的页面被定义为source / main / resources下的index.jelly 文件和一个基础包,
其中包含Action类的包名称,并附加其类名(例如src / main / resources / org / example / myplugin / MyProjectAction)。

2020-07-25