繁体   English   中英

向自定义gradle插件添加依赖项

[英]Adding dependencies to a custom gradle plugin

我正在创建使用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相反),如果某个静态初始值设定项引发了一些异常,并且该类无法加载且以后无法使用。

您缺少依赖项的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM