【问题标题】:Adding dependencies to a custom gradle plugin将依赖项添加到自定义 gradle 插件
【发布时间】:2016-04-30 13:21:12
【问题描述】:

我正在创建一个使用 gson 的 gradle 插件,但是当我在客户端使用该插件时,它会抛出这个 java.lang.NoClassDefFoundError: com/google/gson/Gson 我希望我以错误的方式链接插件中的依赖项,但我不太确定,所以任何帮助都会很棒。

插件中的build.gradle

group 'nl.daanluttik.gradle'
version '0.1'

apply plugin: 'java'
apply plugin: 'maven' // the plugin to distribute to maven

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2'
    compile gradleApi()/*The gradle plugin api*/
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

//To distribute to maven
uploadArchives {
    repositories {
        mavenLocal()
    }
}

客户端项目中buildgradle的一段

buildscript {
    repositories {
        mavenLocal()
    }
    dependencies {
        classpath group: 'nl.daanluttik.gradle', name: 'peach', version: '0.1'
    }
}

【问题讨论】:

  • 这真的是第一个错误吗?我经常看到NoClassDefFoundError(与ClassNotFoundException 形成对比),如果某些静态初始化程序引发了一些异常,并且由于该类无法加载并且以后不可用。
  • @BjörnKautler 你是完全正确的。我会改的
  • 太好了,我把评论作为答案,所以你可以采取相应的行动:-)
  • 你能看看你的插件发布到你的mavenLocal的pom.xml吗?它是否包含 gson 依赖项?
  • 您是否尝试将 mavenCentral() 添加到客户端项目的 buildscript 部分?

标签: java plugins gradle


【解决方案1】:

这真的是第一个错误吗?我经常看到NoClassDefFoundError(与ClassNotFoundException 形成对比),如果某些静态初始化程序引发了一些异常,并且因为该类无法加载并且以后不可用。

【讨论】:

  • 如果我使用 --info 和 --debug 运行插件,我仍然看不到 'java.lang.NoClassDefFoundError' 之前的任何错误,所以我仍然不知道问题来自哪里或如何解决它。
  • 啊,对不起,那我误会你了。从评论中我认为这是你的问题。
  • 没关系,我的意思是我会更改问题描述。问题的根源对我来说仍然是个谜。
【解决方案2】:

您缺少包含依赖项的 pom 文件。如果它只是 java,那么您可以轻松使用 maven-publish,它将为您正确生成 pom。

apply plugin: 'maven-publish'

publishing {
    publications {
        maven(MavenPublication) {
            groupId 'nl.daanluttik.gradle'
            artifactId 'peach'
            version '0.1'

            from components.java
        }
    }
}

然后您可以使用gradle publish 发布到存储库(默认仅限本地)

参考:https://docs.gradle.org/current/userguide/publishing_maven.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多