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

mat*_*lli 7 plugins gradle

我正在尝试构建一个 gradle 自定义插件,该插件又依赖于其他插件。特别是,该插件依赖于com.bmuschko.docker-remote-api插件(同样依赖于 java 库com.github.docker-java:docker-java:2.1.1)。

所以我尝试使用以下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'
}
Run Code Online (Sandbox Code Playgroud)

以及以下插件文件:

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/")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到gradle build的只是错误

unable to resolve class com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
Run Code Online (Sandbox Code Playgroud)

题:

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


你可以在 github 上获得完整的插件项目。

RaG*_*aGe 3

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