Как использовать внешний плагин в пользовательском плагине Gradle - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь написать собственный плагин Gradle (для себя), который использует много внешних плагинов, таких как (Detekt) ... Но кажется, что это невозможно, я могу писать только внутренние задачи, созданные моимплагин ... Похоже, мне нужно создать внешний плагин и использовать его в качестве jar-файла или создать задачу, использующую, например, API детект-ядра - и это то, чего я не хочу делать ...

Как применить, например, библиотеку детектов и конфигурацию задач к своему пользовательскому плагину?

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
            }
        }
    }}
}
...