¿Cómo agregar instrucciones de Import-Package para dependencias de tiempo de ejecución?
Estoy construyendo un tarro OSGi usando Gradle, y estoy teniendo un poco de problemas con el manifiesto. Aquí hay un extracto de mi script de compilación:
apply plugin: 'java'
apply plugin: 'osgi'
jar {
baseName = 'awesome'
manifest {
name = 'An Awesome Application'
symbolicName = 'com.example.awesome'
// instruction 'Import-Package', 'org.springframework.orm'
}
}
Usando lo anterior, Gradle detecta mis dependencias y agrega unImport-Package
Con todas mis dependencias en tiempo de compilación. Pero digamos que mi aplicación tiene una dependencia de tiempo de ejecución deorg.springframework.orm
también, ¿cómo le digo a Gradle que incluya eso como un argumento enImport-Package
?
Con la fila comentada anterior sin comentar, la generadaImport-Package
la instrucción especificasolamente org.springframework.orm
. Esto me confunde, ya queLa documentación de Gradle para OsgiManifest. estados
OsgiManifest instruction(String name, String... values)
Agrega argumentos a una instrucción. Si la instrucción no existe, se crea. Si existe, los argumentos se anexan a los argumentos existentes.
Esto no parece aplicar para el auto-detectado.Import-Package
argumentos, sin embargo. Si especificoinstruction 'Import-Package', 'my.dependency.1'
y así sucesivamente, e imprimirjar.manifest.instructions
en el medio, puedo ver cómo se agregan en secuencia, y todos aparecen en el manifiesto generado, pero parece que el complemento OSGi de Gradle no agrega los argumentos detectados automáticamente siImport-Package
Se especifica manualmente.
Import-Package
instrucción, se genera automáticamente con todas mis dependencias en tiempo de compilación, pero no con las dependencias en tiempo de ejecución.Si lo hagomanifest { instruction 'Import-Package', 'org.springframework.orm' }
, entonces las dependencias en tiempo de compilación no se incluyen automáticamente.¿Cómo puedo decirle a Gradle mis dependencias de tiempo de ejecución para que puedan agregarse aImport-Package
?