2015-12-01 3 views
2

я должен объявить зависимость для моего пользовательского плагина в buildscriptполучить путь к классам зависимостей в пользовательском Gradle плагине

buildscript { 
    dependencies { 
     classpath files (["project/path/to/compiled/classes"]) 

     classpath ("com.project.plugin:custom-plugin:${pluginVersion}") 
    } 
} 

Можно ли получить их как-то внутри класса плагина

public class PluginClass implements Plugin<Project> { 

    @Override 
    public void apply(Project project) { 
     project.getExtensions().create("pluginConfig", PluginExtension.class); 
     project.getTasks().create("plugin", PluginTask.class); 
    } 

} 

или передать их с помощью расширения ? Что-то вроде:

porject.getDependencies().create(classpath_dependency) 

ответ

5

Вы можете получить доступ как dependencies и configurations через project Например:

buildscript { 
    repositories { 
    mavenCentral() 
    } 

    dependencies { 
    classpath 'com.google.guava:guava:18.0' 
    } 
} 

apply plugin: LolPlugin 

class LolPlugin implements Plugin<Project> { 
    public void apply(Project p) { 
    p.buildscript.dependencies.each { 
     println it 
    } 
    p.buildscript.configurations.classpath.each { 
     println it 
    } 
    } 
} 
+0

Но я использую 'java' и не' groovy' для плагина и там вы можете просто все 'buildscript() .configurations(). classpath' – lapots

+0

Хорошо, не имеет значения, на каком языке это. Вы можете получить доступ к требуемому артефакту с кодом (или похожим, когда он приходит java), который я предоставил. – Opal

Смежные вопросы