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.

TL; DR:Jeśli nie określę ręcznie,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?

questionAnswers(1)

yourAnswerToTheQuestion