Como adicionar instruções de pacote de importação para dependências de tempo de execução?
Eu estou construindo um jar OSGi usando Gradle, e estou tendo um pouco de dificuldade com o manifesto. Aqui está um trecho do meu script de construção:
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 o acima, Gradle detecta minhas dependências e adiciona umImport-Package
com todas as minhas dependências em tempo de compilação. Mas diga que meu aplicativo tem uma dependência de tempo de execuçãoorg.springframework.orm
também, como eu digo a Gradle para incluir isso como um argumento emImport-Package
?
Com a linha comentada acima uncommented, o geradoImport-Package
instrução especificasó org.springframework.orm
. Isso me confunde, já quea documentação do Gradle para OsgiManifest estados
OsgiManifest instruction(String name, String... values)
Adiciona argumentos a uma instrução. Se a instrução não existir, ela será criada. Se existir, os argumentos serão anexados aos argumentos existentes.
Isso não parece se aplicar à detecção automáticaImport-Package
argumentos, no entanto. Se eu especificarinstruction 'Import-Package', 'my.dependency.1'
e assim por diante, e imprimajar.manifest.instructions
no meio, eu posso ver como eles são adicionados em seqüência, e todos eles aparecem no manifesto gerado, mas parece que o plugin OSGi de Gradle não adiciona os argumentos detectados automaticamente seImport-Package
é especificado manualmente.
Import-Package
instrução, é gerado automaticamente com todas as minhas dependências em tempo de compilação, mas não as dependências de tempo de execução.Se eu fizermanifest { instruction 'Import-Package', 'org.springframework.orm' }
, então as dependências de tempo de compilação não são incluídas automaticamente.Como posso dizer ao Gradle minhas dependências de tempo de execução para que elas possam ser adicionadas aImport-Package
?