2013-11-29 35 views
0

我试图弄清楚如何在itp04-rcpeclipse-repository内使用pomfirst-thirdparty包。在itp04-rcp示例中包括Tycho的itp02.bundle插件。产品

我想,我应该能够运行:

> 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插件?

+0

build02是Tycho构建(“manifest first”)。为什么要用maven-bundle-plugin(“POM first”)构建它?或者你是否想引用build01包? – oberlies

+0

是的,我想在itp04中使用pom-first artifact(我不认为它实际用于任何示例中) –

+0

您能否在问题中反映这一点,即编辑ID以便它们实际上首先引用POM从'itp02/build01'捆绑?冲突的信息使答案中很难具体。 – oberlies

回答

0

如果不在构建的target platform中,则不能在Tycho构建中使用tycho.demo.itp02.bundle bundle

不像例如一个Maven依赖性声明,在产品文件中的依赖性声明,即<plugin id="tycho.demo.itp02.bundle" />,是尚未:

  • 它好好尝试指定一个版本。
  • 它没有指定在哪个p2库中查找。 (不像在Maven中,没有“中央” P2存储库中的所有文物。)

为了克服这种模糊和挑选以确定的方式具体神器文件中,第谷项目都需要一个目标平台,所有的候选文物可以用来匹配依赖声明。

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

+0

所以,我要添加一个常规的maven依赖项' tycho.demo.itp02, pomfirst-thirdparty'到 [itp04-rcp/eclipse-repository/pom.xml](http://git.eclipse.org/c/ tycho/org.eclipse.tycho-demo.git/tree/itp04-rcp/eclipse-repository/pom.xml)并在[父目标平台配置]中设置“pomDependencies =考虑”(http:// git.eclipse.org/c/tycho/org.eclipse.tycho-demo.git/tree/itp04-rcp/pom.xml)? –

+0

“pomfirst-thirdparty”的依赖关系是否需要作为OSGI捆绑包部署到Nexus上,或者它们可以是具有标准Maven生成清单的常规JAR吗? –

+0

@NicholasAlbion我可以添加POM片段的答案,但这些不符合原来的问题。请先解决问题,以便它使用正确的ID。 – oberlies