如何在自定义gradle插件中使用外部插件

如何在自定义gradle插件中使用外部插件,gradle,gradle-plugin,detekt,Gradle,Gradle Plugin,Detekt,我正在尝试编写自定义gradle插件(为我自己),它使用许多外部插件,如(detekt)。。。但这似乎是不可能的,我只能写由我的插件创建的内部任务。。。 看起来我必须自己构建外部插件,并将其用作jar文件,或者创建使用detekt core API的任务,而这是我不想做的事情 例如,如何将detekt库和任务配置应用于自定义插件 package com.urosjarc.gradle.tdd import org.gradle.api.Plugin import org.gradle.api.

我正在尝试编写自定义gradle插件(为我自己),它使用许多外部插件,如(detekt)。。。但这似乎是不可能的,我只能写由我的插件创建的内部任务。。。 看起来我必须自己构建外部插件,并将其用作jar文件,或者创建使用detekt core API的任务,而这是我不想做的事情

例如,如何将detekt库和任务配置应用于自定义插件

package com.urosjarc.gradle.tdd

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.existing
import org.gradle.testing.jacoco.plugins.JacocoPlugin

class TddPlugin : Plugin<Project> {
    override fun apply(target: Project) { with(target){

        plugins.run {
            apply(JacocoPlugin::class)
            apply("io.gitlab.arturbosch.detekt")
        }

        task("hello").doLast {
            println("Hello World from plugins! :D")
        }

        val detekt by tasks.existing(Detekt::class) {
            reports {
                html.destination = "$buildDir/detekt"
                xml.enabled = false
            }
        }
    }}
}
package com.urosjarc.gradle.tdd
导入org.gradle.api.Plugin
导入org.gradle.api.Project
导入org.gradle.kotlin.dsl.apply
导入org.gradle.kotlin.dsl.existing
导入org.gradle.testing.jacoco.plugins.JacocoPlugin
类TddPlugin:Plugin{
覆盖乐趣应用(目标:项目){with(目标){
plugins.run{
应用(JacocoPlugin::类)
应用(“io.gitlab.arturbosch.detekt”)
}
任务(“你好”)。多拉斯特{
println(“插件世界你好!:D”)
}
val detekt by tasks.existing(detekt::class){
报告{
html.destination=“$buildDir/detekt”
xml.enabled=false
}
}
}}
}

不熟悉此产品,但