0

我有3个项目:

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

    <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,请参阅目标平台配置文档的这一部分

于 2013-07-02T08:37:14.830 回答