Jak dodać instrukcje Import-Package dla zależności czasu wykonywania?
Buduję słoik OSGi za pomocą Gradle i mam trochę problemów z manifestem. Oto fragment mojego skryptu do budowania:
apply plugin: 'java'
apply plugin: 'osgi'
jar {
baseName = 'awesome'
manifest {
name = 'An Awesome Application'
symbolicName = 'com.example.awesome'
// instruction 'Import-Package', 'org.springframework.orm'
}
}
Korzystając z powyższego, Gradle wykrywa moje zależności i dodajeImport-Package
ze wszystkimi moimi zależnościami kompilacyjnymi. Ale powiedzmy, że moja aplikacja jest zależna od czasu wykonywaniaorg.springframework.orm
jak również mam powiedzieć Gradle'owi, by umieścił to jako argument wImport-Package
?
Po skomentowaniu powyższego wiersza wygenerowanyImport-Package
instrukcja określatylko org.springframework.orm
. To mnie dezorientujedokumentacja Gradle dla OsgiManifest stany
OsgiManifest instruction(String name, String... values)
Dodaje argumenty do instrukcji. Jeśli instrukcja nie istnieje, zostanie utworzona. Jeśli tak, argumenty są dołączane do istniejących argumentów.
Wydaje się, że nie dotyczy to autodetekcjiImport-Package
jednak argumenty. Jeśli sprecyzujęinstruction 'Import-Package', 'my.dependency.1'
i tak dalej, i drukowaćjar.manifest.instructions
w międzyczasie widzę, jak są dodawane kolejno, a wszystkie pojawiają się w wygenerowanym manifeście, ale wydaje się, że wtyczka OSGi Gradle nie dodaje automatycznie wykrytych argumentów, jeśliImport-Package
jest ręcznie określony.
Import-Package
instrukcja jest generowana automatycznie ze wszystkimi moimi zależnościami podczas kompilacji, ale nie z zależnościami środowiska wykonawczego.Jeśli zrobięmanifest { instruction 'Import-Package', 'org.springframework.orm' }
, wtedy zależności czasu kompilacji nie są automatycznie uwzględniane.Jak mogę poinformować Gradle o moich zależnościach w czasie wykonywania, aby można je było dodawaćImport-Package
?