2013-04-26 23 views
0

我需要創建p2存儲庫以在我的應用程序中添加額外的軟件。 例如我想將所有i18n捆綁包進行外部化,所以我有一組只具有i18n碎片的功能。p2版本庫僅包含特性內容且不具有依賴關係

我這樣做的方式是從一個完整的p2存儲庫中建立pde幷包含產品和i18n插件和功能。

我嘗試使用p2.mirror Ant任務來創建只有國際化的片段在P2存儲庫,但問題是,它總是embbed那些國際化束取決於主機捆綁。這使得我的p2回購非常龐大,因爲它擁有我的大部分應用程序和i18n。

<p2.mirror source="file://${build.repo.path}" destination="file://${i18n.repo.path}"> 
    <iu id="org.talend.i18n.all-feature.feature.group" version="" /> 
</p2.mirror> 

有沒有一種方法來創建一個P2存儲庫僅包括在一個給定的功能引用,不收留他們的那些捆?

回答

1

您需要添加所謂的「切片選項」,並指定你只想嚴格的版本範圍的依賴關係:

<p2.mirror ...> 
    <slicingoptions followStrict="true" /> 
</p2.mirror> 

功能和插件之間的包含關係在P2編碼爲嚴格的版本範圍依賴關係,所以使用這個選項,你只應該得到這個功能及其附帶的插件。

請注意,p2依賴發佈商正確轉換feature.xml中的信息。如果您使用非標準發佈者或通過p2.inf影響發佈,則嚴格版本範圍依賴關係可能不會與包含對象1:1相對應。在這種情況下,不可能實現你想要的。 p2鏡像將僅對p2元數據–進行操作,因此無法使其再次查看feature.xml

+1

即使對於包含在版本中的插件,發佈者也應該使用發佈上下文中提供的確切版本創建嚴格的版本依賴性。這需要你在上下文中擁有所有需要的插件。 (您可以考慮使用Tycho來爲您管理髮布環境。) – oberlies 2013-05-11 08:48:18

相關問題