как использовать плагин внутри groovy плагина - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь перенести задачи из build.gradle в плагин, который это делает. В моем build.gradle я делаю это:

plugins {
    //id 'java'
    id 'war'

    //https://plugins.gradle.org/plugin/org.gretty
    id 'org.gretty' version '3.0.1'

    id "com.github.dkorotych.gradle-maven-exec" version "2.2.1"

}
apply plugin: 'maven'

....
....

prepareFrontEnd (type: MavenExec, dependsOn: build) {
    goals 'vaadin:prepare-frontend'
}


task buildFrontEnd (type: MavenExec, dependsOn: prepareFrontEnd) {
    goals 'vaadin:build-frontend'
}

Теперь я перемещаю этот материал в плагины:

package com.github.mdre.hgvaadinplugin

import org.gradle.api.Plugin;
import org.gradle.api.Project;
//import com.github.dkorotych.gradle.maven.exec.MavenExec;


class HGVaadinPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
        println "Hybrid Gradle Vaaadin plugin."
        project.plugins.apply('com.github.dkorotych.gradle-maven-exec')
        // project.getPluginManager().apply('gradle-maven-exec-plugin')

        project.task('prepareFrontEnd', type: MavenExec){
            dependsOn build
            doLast {
                goal 'vaadin:prepare-frontend'
            }
        }
    }
}

Если я пытаюсь импортировать класс MavenExe c, я получаю эта ошибка:

> Task :compileGroovy FAILED
startup failed:
/home/mdre/Proyectos/HGVaadinPlugin/src/main/groovy/com/github/mdre/hgvaadinplugin/HGVaadinPlugin.groovy: 5: unable to resolve class com.github.dkorotych.gradle.maven.exec.MavenExec
 @ line 5, column 1.
   import com.github.dkorotych.gradle.maven.exec.MavenExec;
   ^

и если я комментирую строку импорта, я получаю эту ошибку в проекте, использующем плагин:

  • Что пошло не так: при оценке возникла проблема root проект 'VaadinFlowLab'.

    Не удалось применить плагин [id 'com.github.mdre.hgvaadinplugin'] Нет такого свойства: MavenExe c для класса: com.github.mdre.hgvaadinplugin.HGVaadinPlugin

Как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 15 февраля 2020

Ну, я исправляю это!

Я забываю включить класс зависимостей в последний jar. Так что все, что мне нужно было добавить это в build.config:

configurations {
    // configuration that holds jars to include in the jar
    extraLibs
}

dependencies {
    ....
    ....
    //necesario para crear un fatJar
    extraLibs "gradle.plugin.com.github.dkorotych.gradle.maven.exec:gradle-maven-exec-plugin:2.2.1"
    configurations.compile.extendsFrom(configurations.extraLibs)
}

jar {
    from {
        configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

и теперь он работает !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...