如何理解Jenkins中的Run和Job类定义

时间:2018-04-24 07:59:24

标签: java jenkins

以下是Jenkins中定义的Job类:

public abstract class Job <JobT extends Job<JobT, RunT>, RunT extends Run<JobT, RunT>>
    extends AbstractItem implements ExtensionPoint, StaplerOverridable, ModelObjectWithChildren {  

代码注释如下

  

/ **
   * {@link Job}的特定执行    *
   *自定义{@link Run}类型始终与
一起使用    *自定义{@link Job}类型,因此没有单独的注册
   *自定义{@link Run}类型的机制    *
   * @author Kohsuke Kawaguchi
   * @see RunListener
   * /

以下是Jenkins中定义的Run类:

public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,RunT>>
    extends Actionable implements ExtensionPoint, Comparable<RunT>, AccessControlled, PersistenceRoot, DescriptorByNameOwner, OnMaster {

代码评论如下:

  

/ **
   *在哈德森的监督下,工作是一个可运行的实体    *
   *每次“运行”时,它都会被记录为{@link Run}对象    *
   *要创建自定义作业类型,请扩展{@link TopLevelItemDescriptor}并将{@link Extension}放在其上。
   *
   * @author Kohsuke Kawaguchi
   * /

现在我陷入了

<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, RunT>>

一部分。它看起来很奇怪(就像对方的循环引用),对我来说,这很难理解。那么,如何理解这种代码设计呢?任何建议或分析都将受到欢迎和赞赏。谢谢。

0 个答案:

没有答案