Gradle自定义插件的构建抛出“无法解析类”

时间:2016-01-26 23:00:07

标签: plugins gradle

我正在尝试构建一个gradle自定义插件,而后者依赖于其他插件。特别是,该插件依赖于 com.bmuschko.docker-remote-api 插件(这又取决于java库 com.github.docker-java:d​​ocker-java:2.1.1 < / em>的)。

所以我尝试使用以下 gradle.build 文件

apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'com.bmuschko.docker-remote-api'

buildscript {
  repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.bmuschko:gradle-docker-plugin:2.6.1'
    }
}

group = 'com.example'
version = '1.0'

dependencies {
    compile gradleApi()
    compile localGroovy()
    compile group: 'com.github.docker-java', name: 'docker-java', version: '2.1.1'
}

以及以下插件文件:

package com.example.build

import org.gradle.api.Project
import org.gradle.api.Plugin

import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
class BndPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
        task buildDockerImage(type: DockerBuildImage) {
            println file("${projectDir}/docker/")
        }
    }
}

但我使用gradle build得到的只是错误

unable to resolve class com.bmuschko.gradle.docker.tasks.image.DockerBuildImage

问题:

如何正确管理自定义插件的依赖关系?

您可以在github上获得完整的plugin project

1 个答案:

答案 0 :(得分:3)

如果您要使用插件中的类,而不是仅仅应用它,那么您还应该在下层依赖项部分中将插件二进制文件包含为编译依赖项。