在itp04-rcp example.product中包含Tycho的itp02.bundle插件

时间:2013-11-29 01:03:38

标签: eclipse maven tycho p2 osgi-bundle

我正在尝试弄清楚如何在pomfirst-thirdparty itp04-rcp中使用eclipse-repository捆绑包。

我认为我应该可以跑:

> cd org.eclipse.tycho-demo\itp02\build02
> mvn org.apache.felix:maven-bundle-plugin:install

然后编辑example.product目录中的itp04-rcp\eclipse-repository文件:

<plugins>
  <plugin id="tycho.demo.itp02.bundle" />
</plugins>

当我在itp04-rc中运行mvn package时,它会抱怨:

Included element tycho.demo.itp02.bundle 0.0.0 is missing.

这有效:

<plugins>
  <plugin id="example-bundle" version="0.0.0" />
</plugins>

<features>
  <!-- <feature id="example-feature" version="0.0.0"/> -->
  <feature id="org.eclipse.rcp" version="0.0.0"/>
  <feature id="org.eclipse.equinox.p2.user.ui" version="0.0.0"/>
</features>

...为什么不是itp02.bundle插件?

1 个答案:

答案 0 :(得分:0)

如果Tycho版本不在构建的target platform内,则无法使用tycho.demo.itp02.bundle bundle

与Maven依赖声明不同,产品文件中的依赖声明(即<plugin id="tycho.demo.itp02.bundle" />)未明确说明:

  • 它没有指定版本。
  • 它没有指定要在哪个p2存储库中查找。 (与Maven不同,没有包含所有工件的“中央”p2存储库。)

为了克服这种歧义并以确定的方式选择特定的工件文件,Tycho项目需要一个目标平台,其中包含可用于匹配依赖声明的所有候选工件。

如何向目标平台添加内容取决于应该引用哪种工件(由Tycho构建,而不是由Tycho构建,本地构建与消费为二进制等)。有关不同选项,请参阅目标平台配置:http://wiki.eclipse.org/Tycho/Target_Platform