簡體   English   中英

Gradle插件依賴項(NoClassDefFoundError)

[英]Gradle plugin dependency (NoClassDefFoundError)

我正在嘗試編寫gradle插件,該插件依賴於RPM星雲插件(基本上將其包裝)。 我編譯插件沒有任何問題。 在生成的ivy.xml中,我有

  <dependencies>
      <dependency org="com.netflix.nebula" name="gradle-ospackage-plugin" rev="4.1.0" conf="compile-&gt;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依賴項直接添加到應用程序項目中時,它會起作用,但這不是我認為的工作方式-插件應下載其所有依賴項,並且客戶端無需關心...

提前致謝!

幾個小時后-問題是沒有生成pom.xml。 使用時創建

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

它按預期工作...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM