Дженкинс не может найти класс через getAction в скриптовом конвейере - PullRequest
0 голосов
/ 22 января 2019

в общей библиотеке я хочу прочитать результаты PMD, FindBugs и CheckStyle. У меня уже есть эта функциональность в моем шаблоне .jelly электронной почты. Это выглядит так:

def pmd = it.getAction('hudson.plugins.pmd.PmdResultAction')
def fb = it.getAction('hudson.plugins.findbugs.FindBugsResultAction')
def cs = it.getAction('hudson.plugins.checkstyle.CheckStyleResultAction')

if (pmd != null || fb != null || cs != null) {        
    if (pmd != null) {   println "    PMD:        " + pmd.result.numberOfWarnings }
    if (fb != null)  {   println "    FindBugs:   " + fb.result.numberOfWarnings }
    if (cs != null)  {   println "    CheckStyle: " + cs.result.numberOfWarnings }
}

Это работает. Теперь я хотел реализовать это в своем скриптовом конвейере:

def getAction(Class actionClass) {
    // getCurrent() returns the currentBuild
    return getCurrent().rawBuild.getAction(actionClass)
}

[...]

def pmd = build.getAction(PmdResultAction.class)        
def fb = build.getAction(FindBugsResultAction.class)    
def cs = build.getAction(CheckStyleResultAction.class)  

def pmdCount = pmd ? pmd.result.numberOfWarnings : 0
def fbCount = fb  ? fb.result.numberOfWarnings : 0  
def csCount = cs  ? cs.result.numberOfWarnings : 0  

def warnings = []                                   
if (pmdCount > 0) warnings << "PMD: " + pmdCount    
if (fbCount > 0) warnings << "FB: " + fbCount       
if (csCount > 0) warnings << "CS: " + csCount       

Конечно, с правильным импортом

import hudson.plugins.pmd.PmdResultAction
import hudson.plugins.findbugs.FindBugsResultAction
import hudson.plugins.checkstyle.CheckStyleResultAction

Но это не с ERROR: hudson.plugins.findbugs.FindBugsResultAction или ERROR: hudson.plugins.checkstyle.CheckStyleResultAction, если я удаляю FindBugs.

Механизм в целом работает, потому что я могу успешно прочитать getAction(AbstractTestResultAction.class) для результатов теста.

Есть идеи, как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...