2017-11-15 1 views
2

는 내가 "Gradle을 빌드"나는 다음과 같은 오류를 실행하면 다음과 같은 build.gradle어디에서 gradle을 가진 org.jenkinsci.plugins.workflow.steps.FlowInterruptedException을 찾을 수 있습니까?

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' 
} 

이 : 그것은 "org.jenkinsci.plugins이 표시되지 않는 것처럼

> 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 

그것입니다. 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 일을하다 이 의존성을 지적하십시오. 이것은 다음과 같은 작업을 함께 표시 할 수 있습니다

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

고마워요! 내가 추천하는대로 내 gradle 파일을 변경하려고했는데 여기에 무엇을 얻을 수 있습니까 https://paste.fedoraproject.org/paste/u9t0z5DWFGZvxwZSOCSL6w 두 번째 옵션은 기본적으로 Gradle에서 Maven으로 전환하고 프로젝트를 빌드해야합니다. 메이븐 프로젝트 맞지? – ddreian

+0

여기에 그라데이션 파일이 있습니다. https://paste.fedoraproject.org/paste/deePstR7apizJ1maj5bZFQ – ddreian

+1

Maven으로 전환 할 필요가 없습니다. 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

관련 문제