我正在使用 Tycho 构建一个 Eclipse 插件,并为我的 OSGi 服务使用声明式服务。Eclipse 有一个不错的 DS 文件编辑器,但它仍然是一个手动过程,这意味着它速度慢且容易出错。
在非 Tycho OSGi 项目中,我可以使用maven-scr-plugin
来生成这些注释。Tycho 的问题是我不能添加对org.apache.felix.annotations
jar 的引用,因为它是
- 不存在于 p2 存储库中
- 不是捆绑
这些注释是用 a 定义的RetentionPolicy = CLASS
,所以它们不必在一个包中。
我知道对 pom-first artifacts 的依赖,但它对我不起作用,因为注释 jar 不是一个包。理想情况下,我可以配置 Tycho/Eclipse 以在编译时查找额外的 jar。
如何获得 Tycho 和 Eclipse 考虑的仅编译时 jar?
更新:我尝试extraClasspathElements
使用tycho-compiler-plugin
. 这确实允许我调用maven-scr-plugin
(请参阅当前的 pom.xml)。但是,似乎 scr 插件无法访问这些类,因为构建失败了
[错误] 无法在项目 org.apache.sling.ide.eclipse-core: /mnt/md/ 上执行目标 org.apache.felix:maven-scr-plugin:1.13.0:scr (generate-scr-descriptor) robert/git/sling-ide-tools/eclipse-core/src/org/apache/sling/ide/eclipse/core/ServerUtil.java:无法加载编译类:org.apache.sling.ide.eclipse.core。服务器实用程序
您还可以查看完整的构建日志