0
我正在嘗試編寫gradle插件,它依賴於RPM星雲插件(它基本上包裝了它)。我編譯插件沒有任何問題。在生成的ivy.xml我Gradle插件依賴項(NoClassDefFoundError)
<dependencies>
<dependency org="com.netflix.nebula" name="gradle-ospackage-plugin" rev="4.1.0" conf="compile->default"/>
</dependencies>
這感覺好了,但是當我申請我的插件應用程序,我得到
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)
當執行的代碼
project.plugins.with {
apply RpmPlugin
}
本節
我試圖從我的插件類使用
添加對構建類路徑的依賴project.buildscript.dependencies {
classpath "com.netflix.nebula:gradle-ospackage-plugin:4.1.0"
}
但這拋出:
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)
它的工作原理,當我直接添加星雲依賴於應用程序項目作爲buildscript依賴,但這不是我怎麼想它應該工作 - 該插件應該下載所有的依賴關係,客戶端不應該在意...
在此先感謝!