【问题标题】:Add reference to a plugin packaged as jar添加对打包为 jar 的插件的引用
【发布时间】:2013-07-02 16:37:14
【问题描述】:

我有 3 个项目:

  • 项目 A:一个 Eclipse 插件
  • 项目 B:依赖于项目 A 的 eclipse 插件
  • 项目 C:一个包含 SWTBot 的 Eclipse 插件仅用于测试项目 B

项目A是通过maven独立编译的。

然后项目 B 和项目 C 一起编译,为了启动测试,使用了 tycho。

问题是通过maven编译项目B和C时,出现如下错误:

[ERROR] 内部错误:java.lang.RuntimeException:“找不到解决方案,因为问题无法解决。”:[“无法满足从 B 1.0.0.qualifier 到 bundle A 0.0.0.", "找不到解决方案,因为问题无法解决。"] -> [帮助 1]

我应该怎么做才能让 tycho 在编译项目 BC 时知道项目 A(在 maven 存储库中可用) ?

【问题讨论】:

    标签: maven eclipse-rcp tycho


    【解决方案1】:

    Bundle BC 都(传递地)需要 bundle A。因此,该捆绑包需要在为捆绑包 B 和 C 配置的 target platform 中。(目标平台是通过正常的 Maven POM 配置配置的,因此您通常会通过添加配置以相同的方式为两个模块配置目标平台到父 POM。)

    为了将 Eclipse 插件/OSGi 包从 Maven 存储库添加到目标平台,您需要配置以下内容:

    • 声明对插件/捆绑包的 POM 依赖项(通过在工件 GAV 中添加 dependency 元素)
    • 在 Tycho 的 target-platform-configuration 插件上设置 pomDependencies=consider

      <plugin>
         <groupId>org.eclipse.tycho</groupId>
         <artifactId>target-platform-configuration</artifactId>
         <version>${tycho-version}</version>
         <configuration>
            <pomDependencies>consider</pomDependencies>
         </configuration>
      </plugin>
      

    请注意,来自 Maven 存储库的工件需要是 Eclipse 插件或 OSGi 包,即它需要具有正确的 OSGi 清单。有关pomDependencies=consider 的更多详细信息,请参阅this section of the target platform configuration documentation

    【讨论】:

    • 您好,谢谢您的回答。问题是项目 A 是由 maven 生成的,没有参考 tycho 插件。我不允许在 poms.xml 中添加依赖项。因此,我正在考虑通过创建一个新项目作为功能项目(在这里我可以添加对 tycho 的依赖项)和一个可用于项目 B 和 C 的更新站点项目来创建一个“本地 Eclipse 插件存储库”。你怎么看?
    • A 只需要成为一个 OSGi 包并部署到 Maven 存储库。 A 不需要知道任何关于第谷的事情。
    • 好的,谢谢。实际上,我在使用 maven 编译时忘记包含 A 的清单。所以第谷并没有将 A 视为一个捆绑包。
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2015-04-22
    • 2011-10-07
    相关资源
    最近更新 更多