2012-04-09 26 views
16

Quiero crear un complemento que aplique automáticamente otros (complementos externos). Esto requiere establecer la dependencia de compilación para el complemento antes de llamar "aplicar complemento". Sin embargo, parece que no puedo agregar dependencias de compilación en un complemento o recibo: ¡No puede cambiar una configuración que no está en estado sin resolver!Crear un complemento de Gradle con una dependencia de otro complemento (externo)

¿Hay una solución a esto?

Mi muestra (no de trabajo) Código:

import org.gradle.api.Project 
import org.gradle.api.Plugin 
class SamplePlugin implements Plugin<Project>{ 
    void apply(Project project) { 

    project.buildscript.dependencies.add("classpath","net.sourceforge.cobertura:cobertura:1.9.4.1"); 

    project.configure(project){   
     apply plugin: 'cobertura' 
    } 
    } 
} 

Respuesta

7

La manera de hacerlo es publicar un pom.xml o ivy.xml junto con el tarro plugin que describe las dependencias del plugin. Alternativamente, puede escribir un complemento de script que declare sus dependencias en una sección buildscript {}. Un complemento de script es simplemente un script de compilación reutilizable que se aplica con apply from: ....

+3

En caso de que alguien esté interesado en cómo se hace exactamente esto: debe ampliar el POM predeterminado en su MavenPublication. Los complementos Nebula de Netflix son una excelente fuente de ejemplos: https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src%2Fmain%2Fgroovy%2Fnebula%2Fplugin%2Fpublishing%2Fmaven%2FMavenJavaPublishingPlugin.groovy – Matthias

+9

Último enlace a Nebula Publish Plugin, en caso de que alguien visite esta página. https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src/main/groovy/nebula/plugin/publishing/maven/MavenPublishPlugin.groovy – dmahapatro

Cuestiones relacionadas