2017-11-15 47 views
2

私は、次のbuild.gradlegradleでorg.jenkinsci.plugins.workflow.steps.FlowInterruptedExceptionを見つけることができますか?私は「Gradleのビルド」を実行すると

apply plugin: 'groovy' 
apply plugin: 'idea' 
apply plugin: 'java' 
repositories { 
    mavenCentral() 
    maven { 
     url 'https://repo.jenkins-ci.org/releases' 
    } 
    maven { 
     url 'https://repo.jenkins-ci.org/public' 
    } 
} 
sourceSets { 
    main { 
     groovy { 
      srcDirs = ['src'] 
     } 
    } 
    test { 
     groovy { 
      srcDirs = ['test'] 
     } 
    } 
} 
dependencies { 
    compile group: 'org.jenkins-ci.main', name: 'jenkins-core', version: '2.76' 
    compile group: 'org.jenkins-ci.plugins.workflow', name: 'workflow-step-api', version: '2.13' 
    compile 'com.cloudbees:groovy-cps:1.14' 
    compile 'org.connectbot.jbcrypt:jbcrypt:1.0.0' 
    compileOnly 'javax.servlet:javax.servlet-api:3.1.0' 
    compile 'org.codehaus.groovy:groovy-all:2.4.12' 
    testCompile 'junit:junit:4.12' 
} 

を持って、私は次のエラーを取得する:

> Task :compileGroovy FAILED 
startup failed: 
/home/user/myproject/SomeClass.groovy: 26: unable to resolve class org.jenkinsci.plugins.workflow.steps.FlowInterruptedException 
@ line 26, column 11. 
     } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException flowInterruptedException) { 
      ^
1 error 
FAILURE: Build failed with an exception. 
* What went wrong: 
Execution failed for task ':compileGroovy'. 
> Compilation failed; see the compiler error output for details. 
* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
* Get more help at https://help.gradle.org 
BUILD FAILED in 1s 
1 actionable task: 1 executed 

それは「org.jenkinsci.pluginsを見ていないかのようにです。 workflow.steps.FlowInterruptedException "しかし、私はworkflow-step-apiを追加しました。

私は間違っていますか?直し方?

はありがとう

'org.jenkins-ci.plugins.workflow:workflow-step-api:2.13'依存性はそれでこれを持っているPOMは( hereから取られた)してい

答えて

1

<packaging>hpi</packaging> 

のGradleが取得する依存性がhpiアーティファクト、ないjar 1あなたですこの依存関係を指す。これは、次のようなタスクを示すことができる。

tasks.create('showDependencies') { 
    doFirst { 
    final config = configurations.getByName(sourceSets.getByName('main').compileClasspathConfigurationName) 
    config.resolvedConfiguration.resolvedArtifacts.findAll { it.moduleVersion.id.group.contains('jenkins') }.each { 
     println("Resolved dependency: id=${it.id}, extension=${it.extension}, classifier=${it.classifier}") 
    } 
    } 
} 

出力:

> Task :showDependencies 
Resolved dependency: id=jenkins-core.jar (org.jenkins-ci.main:jenkins-core:2.76), extension=jar, classifier=null 
Resolved dependency: id=workflow-step-api.hpi (org.jenkins-ci.plugins.workflow:workflow-step-api:2.13), extension=hpi, classifier=null 
Resolved dependency: id=cli.jar (org.jenkins-ci.main:cli:2.76), extension=jar, classifier=null 
Resolved dependency: id=trilead-ssh2.jar (org.jenkins-ci:trilead-ssh2:build-217-jenkins-11), extension=jar, classifier=null 
Resolved dependency: id=icon-set.jar (org.jenkins-ci.plugins.icon-shim:icon-set:1.0.5), extension=jar, classifier=null 
Resolved dependency: id=remoting.jar (org.jenkins-ci.main:remoting:3.11), extension=jar, classifier=null 
Resolved dependency: id=version-number.jar (org.jenkins-ci:version-number:1.4), extension=jar, classifier=null 
Resolved dependency: id=crypto-util.jar (org.jenkins-ci:crypto-util:1.1), extension=jar, classifier=null 
Resolved dependency: id=bytecode-compatibility-transformer.jar (org.jenkins-ci:bytecode-compatibility-transformer:1.8), extension=jar, classifier=null 
Resolved dependency: id=structs.hpi (org.jenkins-ci.plugins:structs:1.5), extension=hpi, classifier=null 
Resolved dependency: id=symbol-annotation.jar (org.jenkins-ci:symbol-annotation:1.5), extension=jar, classifier=null 
Resolved dependency: id=annotation-indexer.jar (org.jenkins-ci:annotation-indexer:1.12), extension=jar, classifier=null 
Resolved dependency: id=task-reactor.jar (org.jenkins-ci:task-reactor:1.4), extension=jar, classifier=null 
Resolved dependency: id=commons-jelly.jar (org.jenkins-ci:commons-jelly:1.1-jenkins-20120928), extension=jar, classifier=null 
Resolved dependency: id=commons-jexl.jar (org.jenkins-ci:commons-jexl:1.1-jenkins-20111212), extension=jar, classifier=null 
Resolved dependency: id=memory-monitor.jar (org.jenkins-ci:memory-monitor:1.9), extension=jar, classifier=null 
Resolved dependency: id=jmdns.jar (org.jenkins-ci:jmdns:3.4.0-jenkins-3), extension=jar, classifier=null 
Resolved dependency: id=constant-pool-scanner.jar (org.jenkins-ci:constant-pool-scanner:1.2), extension=jar, classifier=null 
Resolved dependency: id=dom4j.jar (org.jenkins-ci.dom4j:dom4j:1.6.1-jenkins-4), extension=jar, classifier=null 

より良いハンドルの依存関係にGradleののdependency management featuresを使用するには、いくつかの方法があります。依存関係を変更するには、拡張子を付けてartifact dependencyを追加します。これは、あなたの依存関係が終わるしたいかに応じて、あなたの正確なユースケースを解決しないかもしれませんが、うまくいけば、あなたは方向を指すことができます側の注意点として

compile(group: 'org.jenkins-ci.plugins.workflow', name: 'workflow-step-api', version: '2.13') { 
    artifact { 
    name = 'workflow-step-api' 
    type = 'jar' 
    } 
} 

を、ジェンキンスプラグインのエコシステムでは、Jenkins Maven HPI PluginJenkins Plugin Parent POMを依存関係管理のために協力して、このような問題にぶつからないようにしてください。

+0

ありがとうございました!私はグラブファイルを変更しようとしましたが、ここで私は何を得るのですか https://paste.fedoraproject.org/paste/u9t0z5DWFGZvxwZSOCSL6w 2番目のオプションは基本的にGradleからMavenに切り替えてプロジェクトをビルドする必要がありますプロジェクト、右か? – ddreian

+0

は、ここであなたがMavenのに切り替えるには_have_ません – ddreian

+1

のGradleファイルhttps://paste.fedoraproject.org/paste/deePstR7apizJ1maj5bZFQです。 GradleはMavenよりはるかに優れたツールですが、JenkinsのエコシステムはMavenの上に構築されています。あなたがGradle(このようなもの)で走っている問題は、Gradle(まだ)の周りに大きなJenkinsコミュニティがないので、あなた自身を理解しなければなりません。私は今日私のスニペットをもう一度見て、あなたに正しい構文を与えたことを確認します。 – mkobit

0

は、どうやら私がext jarファイルを追加する必要がありました。ここに私のビルドファイルである

apply plugin: 'groovy' 
apply plugin: 'idea' 
apply plugin: 'java' 
repositories { 
    mavenCentral() 
    maven { 
     url 'https://repo.jenkins-ci.org/releases' 
    } 
    maven { 
     url 'https://repo.jenkins-ci.org/public' 
    } 

} 
sourceSets { 
    main { 
     groovy { 
      srcDirs = ['src'] 
     } 
    } 
    test { 
     groovy { 
      srcDirs = ['test'] 
     } 
    } 
} 
dependencies { 
    compile group: 'org.jenkins-ci.main', name: 'jenkins-core', version: '2.76' 
    compile group: 'org.jenkins-ci.plugins.workflow', name: 'workflow-step-api', version: '2.13', ext: 'jar' 
    compile 'com.cloudbees:groovy-cps:1.14' 
    compile 'org.codehaus.groovy:groovy-all:2.4.8' 
    compileOnly 'javax.servlet:javax.servlet-api:3.1.0' 
    testCompile 'junit:junit:4.12' 
} 
+0

注意すべき点は、 'ext'が' workflow-step-api'の過渡的な依存関係のすべてをもたらすとは思っていません(100%ではないと思います)。 – mkobit

関連する問題