2016-12-14 3 views
0

나는 RPM 성운 플러그인 (기본적으로 그것을 감싸고 있음)에 의존하는 gradle plugin을 작성하려고합니다. 나는 문제없이 플러그인을 컴파일한다. 생성 된 ivy.xml에서 나는 괜찮 느낌Gradle plugin dependency (NoClassDefFoundError)

<dependencies> 
     <dependency org="com.netflix.nebula" name="gradle-ospackage-plugin" rev="4.1.0" conf="compile-&gt;default"/> 
    </dependencies> 

을 가지고,하지만 난 응용 프로그램에서 내 플러그인을 적용 할 때 코드

project.plugins.with { 
     apply RpmPlugin 
    } 

의이 부분을 실행할 때, 나는

Caused by: java.lang.NoClassDefFoundError: com/netflix/gradle/plugins/rpm/RpmPlugin 
    at com.cisco.td.gradle.rpm.ServiceRpmPlugin$_configureProject_closure2.doCall(ServiceRpmPlugin.groovy:27) 
    at com.cisco.td.gradle.rpm.ServiceRpmPlugin.configureProject(ServiceRpmPlugin.groovy:26) 

를 얻을 수

내 플러그인 클래스에서 빌드 클래스 경로에 대한 종속성을 추가하려고 시도했습니다.

나는 buildscript 의존성과 같은 응용 프로그램 프로젝트에 직접 성운 종속성을 추가 할 때

Caused by: org.gradle.api.InvalidUserDataException: Cannot change dependencies of configuration ':classpath' after it has been resolved. 
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.validateMutation(DefaultConfiguration.java:631) 
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$2.run(DefaultConfiguration.java:174) 
    at org.gradle.api.internal.DefaultDomainObjectCollection.assertMutable(DefaultDomainObjectCollection.java:274) 

그것은, 작동하지만 이것은 내가이 일을해야한다고 생각하는 방법 아니다 - :

project.buildscript.dependencies { 
     classpath "com.netflix.nebula:gradle-ospackage-plugin:4.1.0" 
    } 

는하지만이 발생합니다 플러그인은 모든 의존성을 다운로드해야하며 클라이언트는주의를 기울여야합니다. ...

미리 감사드립니다!

답변

0

몇 시간 후 - 문제는 pom.xml이 생성되지 않았다는 것입니다. 예상대로 작동

uploadArchives { 
    repositories { 
     mavenDeployer { 
     repository(url: mavenLocal().url) 
     } 
    } 
} 

... 사용하여 생성 할 때