Wie füge ich Import-Package-Anweisungen für Laufzeitabhängigkeiten hinzu?

Ich baue ein OSGi-Glas mit Gradle und habe ein paar Probleme mit dem Manifest. Hier ist ein Auszug aus meinem Build-Skript:

apply plugin: 'java'
apply plugin: 'osgi'

jar {
    baseName = 'awesome'
    manifest {
        name = 'An Awesome Application'
        symbolicName = 'com.example.awesome'
//        instruction 'Import-Package', 'org.springframework.orm'
    }
}

Anhand der obigen Informationen erkennt Gradle meine Abhängigkeiten und fügt eine hinzuImport-Package mit all meinen Abhängigkeiten zur Kompilierungszeit. Angenommen, meine Anwendung hat eine Laufzeitabhängigkeit vonorg.springframework.orm Wie kann ich Gradle auch anweisen, dies als Argument in die Liste aufzunehmen?Import-Package?

Wenn die kommentierte Zeile oben nicht kommentiert ist, wird sie generiertImport-Package Anweisung spezifiziertnur org.springframework.orm. Das verwirrt mich seitdemdie Gradle-Dokumentation für OsgiManifest Zustände

OsgiManifest instruction(String name, String... values)

Fügt einer Anweisung Argumente hinzu. Wenn die Anweisung nicht vorhanden ist, wird sie erstellt. Ist dies der Fall, werden die Argumente an die vorhandenen Argumente angehängt.

Dies scheint nicht für die automatische Erkennung zu geltenImport-Package Argumente jedoch. Wenn ich spezifiziereinstruction 'Import-Package', 'my.dependency.1' und so weiter und druckenjar.manifest.instructions Zwischendurch kann ich sehen, wie sie der Reihe nach hinzugefügt werden und sie erscheinen alle im generierten Manifest, aber es scheint, dass Gradles OSGi-Plugin die automatisch erkannten Argumente nicht hinzufügt, wennImport-Package wird manuell angegeben.

TL; DR:Wenn ich das nicht manuell spezifiziereImport-Package Diese Anweisung wird automatisch mit all meinen Abhängigkeiten zur Kompilierungszeit generiert, jedoch nicht mit den Abhängigkeiten zur Laufzeit.Wenn ich machemanifest { instruction 'Import-Package', 'org.springframework.orm' }, dann werden die Abhängigkeiten zur Kompilierungszeit nicht automatisch berücksichtigt.

Wie kann ich Gradle meine Laufzeitabhängigkeiten mitteilen, damit sie hinzugefügt werden können?Import-Package?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage