我正在开发我的第一个Jenkins插件,并按照上的教程进行操作 wiki.jenkins-ci.org。添加BuildStep并 生成结果后,我现在要将它们发布给用户。我想 通过作业页面和相应的结果视图 页面上的新链接条目来执行此操作。
不幸的是,我没有在左侧找到导航栏的正确扩展点,在中心没有找到 主要的导航链接,也没有找到新的 目标页面。有人可以向我指出正确的方向,还是可以给我链接到 说明这种情况的教程或博客文章?
谢谢
经过反复试验,我找到了解决方案。
总而言之,您在项目中需要两个不同的东西:
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)。