2013-11-29 59 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