在apply方法中指定插件的类路径

时间:2015-10-27 14:26:31

标签: gradle

如何在类中指定自定义gradle插件的类路径,实现接口Plugin

class TaskPlugin implements Plugin<Project> {
    void apply(Project project) {

        project.task('task') << {
            println 'simple task'
        }

    }
}

我看到类似的东西

https://github.com/gradle/gradle/blob/6277a4dc70fbeea83c111e75c95ba851d1e56ffc/subprojects/plugins/src/main/groovy/org/gradle/api/plugins/WarPlugin.java#L25

但是,我不知道如何将它应用于我的案例。具体来说,我想同时使用testmain源集。

我想摆脱与我的项目相关的classpath依赖项。因为我在dependenciesbuildscript { dependencies {

中具有相同的依赖关系

每次添加插件时,我都要添加classpath依赖项,该插件正在使用。

apply plugin: 'my-plugin'
task {
     ... do something
}
buildscript {
    repositories {
        flatDirs dir('.')
    }
    dependencies {
        classpath ("my-group:my-plugin:my-version")
        classpath ("dependency:dependency:dependency")
    }
}

问题在于,当我指定基本dependencies(不在buildscript内)时,我可能具有相同的依赖关系

dependencies {
    compile ("dependency:dependency:dependency")
}

有时我需要一些已编译的项目依赖项compile project(":my-project"),我必须使用classpath files("path to compiled")指定。

如何调整插件实现以删除那些dependency重复项?例如,如果我使用compileruntime声明依赖项 - 插件将知道它,并且不需要在类路径中明确声明依赖项。

0 个答案:

没有答案