加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何使用sbtosgi生成osgi bundle作为sbt发布任务的一部

发布时间:2020-12-16 18:50:01 所属栏目:安全 来源:网络整理
导读:我正在使用 sbtosgi plugin从使用bnd的sbt构建生成OSGi包. sbtosgi包提供了用于生成包的osgi-bundle任务.使用sbtosgi的默认配置,从sbt提示符运行osgi-bundle会更新JAR以包含正确的标头,但运行clean package会导致JAR没有OSGi标头.在Maven中,我正在尝试使用包
我正在使用 sbtosgi plugin从使用bnd的sbt构建生成OSGi包. sbtosgi包提供了用于生成包的osgi-bundle任务.使用sbtosgi的默认配置,从sbt提示符运行osgi-bundle会更新JAR以包含正确的标头,但运行clean package会导致JAR没有OSGi标头.在Maven中,我正在尝试使用包装= bundle来使用maven-bundle-plugin – 即,项目的主要工件应该是OSGi包.

在阅读sbtosgi插件的源代码的基础上,我认为osgi-bundle任务会覆盖packageBin创建的JAR.我尝试覆盖packageBin的定义,以便它使用osgi-bundle任务而不是默认任务:

packageBin in Compile <<= OsgiKeys.bundle

这导致了循环引用:

[error] Cyclic reference involving 
[error]    {file:project/*:osgi-bundle
[error]    {file:project/compile:full-classpath
[error]    {file:project/compile:exported-products
[error]    {file:project/compile:package-bin

我对SBT很新,我不知道从哪里开始.任何帮助,将不胜感激.

解决方法

看起来我通过Twitter的初步建议你使用不起作用.对不起.但幸运的是我让Mark Harrah坐在我旁边,这里有一个可行的解决方案:

packagedArtifact in (Compile,packageBin) <<= (artifact in (Compile,packageBin),OsgiKeys.bundle).identityMap

artifact in (Compile,packageBin) ~= (_.copy(`type` = "bundle"))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读