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.
Import-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
?