osgi – 如何为运行时依赖项添加Import-Package指令?
我正在使用Gradle构建一个OSGi jar,我在使用清单时遇到了一些麻烦.这是我的构建脚本的摘录:
apply plugin: 'java' apply plugin: 'osgi' jar { baseName = 'awesome' manifest { name = 'An Awesome Application' symbolicName = 'com.example.awesome' // instruction 'Import-Package','org.springframework.orm' } } 使用上面的代码,Gradle会检测我的依赖项并添加一个包含所有编译时依赖项的Import-Package.但是说我的应用程序也对org.springframework.orm有运行时依赖性,我如何告诉Gradle将它作为参数包含在Import-Package中? 如果上面的注释行未注释,则生成的Import-Package指令仅指定org.springframework.orm.自the Gradle documentation for OsgiManifest州以来,这让我感到困惑
但是,这似乎不适用于自动检测到的Import-Package参数.如果我指定’Import-Package’,’my.dependency.1’等指令,并在其间打印jar.manifest.instructions,我可以看到它们是如何按顺序添加的,它们都出现在生成的清单中,但是,如果手动指定了Import-Package,Gradle的OSGi插件似乎不会添加自动检测到的参数. TL; DR: >如果我不手动指定Import-Package指令,它将自动生成所有编译时依赖项,但不是运行时依赖项. 如何告诉Gradle我的运行时依赖项,以便将它们添加到Import-Package中?
我不熟悉Gradle bnd插件,但我熟悉bnd.
bnd指令中Import-Package的默认值为*.方法:匹配所有生成的导入.如果为Import-Package指定单个值,则它将覆盖*并成为唯一导入.因此,您的Import-Package指令几乎总是应该以最后一个位置的catch-all *结束. 猜测这将如何转换为Groovy / Gradle,我建议如下: 指令’Import-Package’,’org.springframework.orm’,’*’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |