Как отловить исключение, выброшенное configs.testPlugins - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь использовать следующий код, чтобы проверить, существуют ли файлы артефактов Jenkins в артефакте

Однако, файл configurations.testPlugins выдает исключение и завершается, как только он может получить какой-либо файл из артефакта.

Можно ли перехватывать исключения и сохранять их работоспособными, пока все файлы не будут проверены?

Есть ли какой-нибудь документ / пример на testPlugins?

Спасибо!

task resolveTestPlugins(type: Copy) {
from configurations.testPlugins
into new File(sourceSets.test.output.resourcesDir, 'test-dependencies')
include '*.hpi'
include '*.jpi'
def mapping = [:]

doFirst {
    configurations.testPlugins.resolvedConfiguration.resolvedArtifacts.each {
        mapping[it.file.name] = "${it.name}.${it.extension}"
    }
}
rename { mapping[it] }

doLast {
    List<String> baseNames = source*.name.collect { mapping[it] }.collect { it[0..it.lastIndexOf('.') - 1] }
    new File(destinationDir, 'index').setText(baseNames.join('\n'), 'UTF-8')
}

}

Ниже приведен обновленный код (цель отладки) с try catch и ошибкой.

task resolveTestPlugins(type: Copy) {

configurations.each { println it.name }

println configurations.testPlugins 

try {
// Line 88
configurations.testPlugins.each {
    println it.name
}
} catch(Exception e) {
    println "Failed : " + e
}

try {
from configurations.testPlugins
into new File(sourceSets.test.output.resourcesDir, 'test-dependencies')
include '*.hpi'
include '*.jpi'
} catch(Exception e) {
    println "Failed : " + e
}

def mapping = [:]

def pluginname = ""

doFirst {       
    try {
        println "A-------- : " + pluginname
        configurations.testPlugins.each {

            try {
                println "B-------- : " + pluginname
                it.resolvedConfiguration.each {
                    try {
                        println "C-------- : " + pluginname

                    it.resolvedArtifacts.each{
                        pluginname = "${it.name}.${it.extension}"
                        println "D-------- : " + pluginname
                        executeBuildCommand(commandString, component)
                        mapping[it.file.name] = "${it.name}.${it.extension}"
                    }
                    } catch(Exception e) {
                        println "Failed : " + pluginname
                    }       
                }   
            } catch(Exception e) {
                println "Failed : " + e
            }
        }
    } catch(Exception e) {
        println "Failed : " + e
    }

    /*      
    try {
        configurations.testPlugins.resolvedConfiguration.resolvedArtifacts.each {
            pluginname = "${it.name}.${it.extension}"
            println "-------- : " + pluginname
            executeBuildCommand(commandString, component)
            mapping[it.file.name] = "${it.name}.${it.extension}"
        }
    } catch(Exception e) {
        println "Failed : " + pluginname
    }
    */
}

rename { mapping[it] }

doLast {
try {   
    List<String> baseNames = source*.name.collect { mapping[it] }.collect { it[0..it.lastIndexOf('.') - 1] }
    new File(destinationDir, 'index').setText(baseNames.join('\n'), 'UTF-8')

} catch(ResolveException  e) {
    println "Failed : " + e
} catch(Exception  e) {
    println "Failed : " + e
}
}

}

Следующее является исключением , Сборка останавливается, как только возникает исключение. Не уверен, что он может продолжать работать, пока все плагины не будут проверены. Спасибо!

         Failed : org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':testPlugins'.

 FAILURE: Build failed with an exception.

 * Where:
 Build file 'C:\...\...\build.gradle' line: 88

 * What went wrong:
 Could not determine the dependencies of task ':resolveTestPlugins'.
 > Could not resolve all dependencies for configuration ':testPlugins'.
    > Could not determine artifacts for org.jenkins-ci.plugins:git-server:1.5
       > Could not get resource 'https://.../artifactory/libs-release/org/jenkins-ci/plugins/git-server/1.5/git-server-1.5.hpi'.
          > Could not HEAD 'https://.../artifactory/libs-release/org/jenkins-ci/plugins/git-server/1.5/git-server-1.5.hpi'. Received status code 401 from server: Unauthorized
...