添加对打包为jar的插件的引用

时间:2013-07-01 15:28:30

标签: maven eclipse-rcp tycho

我有3个项目:

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

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

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

问题是当通过maven编译项目B和C时,我收到以下错误:

  

[错误]内部错误:java.lang.RuntimeException:“找不到解决方案,因为问题不可满足。”:[“无法满足 B 1.0.0.qualifier对bundle <的依赖性< strong> A 0.0.0。“,”找不到解决方案,因为问题不能令人满意。“] - &gt; [帮助1]

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

1 个答案:

答案 0 :(得分:1)

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

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

  • 声明与插件/ bundle的POM依赖关系(通过添加dependency元素与工件GAV)
  • 在Tycho的pomDependencies=consider插件上设置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的详细信息,请参阅this section of the target platform configuration documentation