2012-04-09 17 views
16

Diğer (harici eklentiler) otomatik olarak uygulayan bir eklenti oluşturmak istiyorum. Bu, "eklentiyi uygula" komutunu kullanmadan önce eklenti için buyldscript bağımlılığını ayarlamayı gerektirir. Ancak bu eklenti eklentileri bir eklentiye ekleyemediğimden veya şu şekilde görünüyor: Çözümlenmemiş durumda olmayan bir yapılandırmayı değiştiremezsiniz!Başka bir (harici) eklentiye bağımlılığı olan bir Gradle eklentisi oluşturma

Bunun için bir çözüm var mı?

Benim örneği (çalışmayan) kodu:

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

cevap

7

bu konuda gitmek için yolu pom.xml yayımlamak veya eklentinin bağımlılıkları açıklar eklenti Jar ile birlikte ivy.xml etmektir. Alternatif olarak, bağımlılıklarını bir buildscript {} bölümünde bildiren bir komut dosyası eklentisi yazabilirsiniz. Bir komut dosyası eklentisi, apply from: ... ile uygulanan yeniden kullanılabilir bir komut dosyasıdır.

+3

Bunun nasıl yapıldığına dair birisinin ilgilenmesi durumunda: MavenPublication'ınızda varsayılan POM'u genişletmeniz gerekir. Netflix'in Nebula eklentileri, örnekler için harika bir kaynaktır: https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src%2Fmain%2Fgroovy%2Fnebula%2Fplugin%2Fpublishing%2Fmaven%2FMavenJavaPublishingPlugin.groovy – Matthias

+9

Bu sayfayı ziyaret eden herkesin bulunması halinde, Nebula'ya son eklenti Plugin yayınlamak. https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src/main/groovy/nebula/plugin/publishing/maven/MavenPublishPlugin.groovy – dmahapatro

İlgili konular