Gradle 如何在groovy插件中使用插件
我正在尝试将任务从build.gradle迁移到一个插件中。 在我的build.gradle中,我执行以下操作:Gradle 如何在groovy插件中使用插件,gradle,groovy,Gradle,Groovy,我正在尝试将任务从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"
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'
}
}
}
}
如果我对导入行进行注释,则在使用插件的项目中会出现以下错误:
- 出了什么问题: 评估根项目“VaadinFlowLab”时出现问题。 未能应用插件[id'com.github.mdre.hgvaadinplugin'] 类:com.github.mdre.hgvaadinplugin.hgvaadinplugin没有这样的属性:MavenExec
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) }
}
}
现在它正在工作 您可能希望将
gradlemaven exec
作为一个依赖项(如果您在项目中内联编写插件,则需要buildSrc依赖项)
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) }
}
}