Jenkins Core API文档导航:如何查找类的自有属性与方法?
解决Jenkins Javadoc中找不到继承属性的问题
别担心,Java基础薄弱完全不是问题——我刚接触Jenkins API的时候也在继承体系上卡过壳!
你的核心疑问其实是Java类的继承特性在Javadoc里的体现方式,下面给你一步步拆解:
1. 你理解上的小误区
hudson.model.Project确实没有自己定义lastBuild属性,但它继承自hudson.model.AbstractProject,而lastBuild正是在这个父类中定义的。Jenkins的Javadoc默认不会把继承来的属性/方法直接列在子类的"自有属性"区域,而是单独放在Inherited Fields/Inherited Methods板块里。
2. 怎么找到继承的属性
打开hudson.model.Project的Javadoc页面:
- 向下滚动,找到标有
Inherited Fields from class: hudson.model.AbstractProject的区域,这里面就包含了lastBuild; - 点击
AbstractProject的类名链接,进入父类的Javadoc页面,就能看到lastBuild的详细定义(包括它的类型、注释等信息)。
3. 一个实用的Groovy小技巧
如果不想来回翻文档验证属性是否存在,在Groovy里可以直接打印对象的所有可用属性(包括继承的):
def jenkinsInstance = hudson.model.Hudson.instance jenkinsInstance.getItems(hudson.model.Project).each { project -> // 打印该对象的所有属性名 println("所有可用属性:${project.metaClass.properties*.name}") println("最后一次构建结果:${project.lastBuild.result}") }
这样你就能快速确认lastBuild是否存在,再去对应父类的Javadoc里深挖细节。
额外提示
Jenkins的核心类大多是多层继承的(比如AbstractProject还继承自TopLevelItem),以后遇到找不到的方法/属性,先看子类页面的继承链(通常在类描述的最上方,比如java.lang.Object → hudson.model.AbstractItem → hudson.model.AbstractProject → hudson.model.Project),顺着父类往上找总能找到答案~
内容的提问来源于stack exchange,提问作者Ingemar
相关产品推荐
相关产品推荐

