Ich habe eine Aufgabe von meinem Plugin, die mysql oder postgres Treiber benötigt. zur Zeit ich in FooPlugin::apply
Methode fest einprogrammiert dieses:Wie fügt man zu einer Plugin-Aufgabe die Abhängigkeiten hinzu, die vom Skript build.grade kommen?
configuration.dependencies.add(project.dependencies.create('mysql:mysql-connector-java:5.1.34'))
Aber ich möchte Benutzer lassen, ihre Fahrer zu wählen. Also für diese würde ich gerne alle Abhängigkeiten von Gradle Build-Skript (build.gradle) greifen, die mein Plugin, um diese Abhängigkeiten dynamisch auf die Aufgabe zu injizieren.
Entschlossen: ein Stück Code hinzufügen
ich das versucht:
class FooPlugin implements Plugin<Project>{
@Override
void apply(Project project) {
project.afterEvaluate {
def configuration = project.configurations.create('bar')
configuration.extendsFrom(project.configurations.findByName('compile'))
…
}
}
}
Wenn Sie nicht in project.afterEvaluate
Block unter Fehler setzen Sie angehoben:
Cannot change dependencies of configuration ':bar' after it has been resolved.
Dank @JBirdVegas es interessant ist, ich einen Blick auf resolutionStrategy nehmen – bioinfornatics