2011-08-22 50 views
1

介紹:我問在P2-論壇這個問題了,不過我不能得到任何答案了這個問題是非常重要的,我的,因爲它完全擋住了我的工作如何修補功能? (特徵的補丁被無插件安裝)

我需要修補當前的Mylyn-Context.Core功能,所以我檢出了插件org.eclipse.mylyn.context.core(3.6.1),創建了一個修復程序並將版本更新到3.6.2 。 之後,我創建了一個功能修補程序項目,它修補了版本3.6.1.v20110728-0200中的org.eclipse.mylyn.context_feature。 我將修補後的插件添加到該功能的依賴關係中。

當我導出一個p2-repository(包含需要修補程序的插件的功能)時,我得到一個看起來正確的文件夾結構。所有功能和插件都有正確的版本。

當我安裝補丁程序時,P2不會抱怨缺少需求並安裝而沒有錯誤。

現在的問題是,在eclipse的plugins文件夾中只有org.eclipse.mylyn.context.core在版本3.6.1 ....但不是3.6.2,因此我的插件沒有工作。 奇怪的是,補丁功能已安裝,但它並沒有抱怨丟失的包(補丁3.6.2)。

我將contents.xml與來自Oracle OEPE Tools的補丁進行了比較,它看起來像一切都是正確的。

有人可以幫我在這裏。我試圖解決這個問題,因爲兩個星期沒有再進一步。

在此先感謝 馬克

附:我加了從生成P2-庫

<?xml version='1.0' encoding='UTF-8'?> 
<?metadataRepository version='1.1.0'?> 
<repository name='Exported Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1'> 
    <properties size='2'> 
    <property name='p2.timestamp' value='1313492070954'/> 
    <property name='p2.compressed' value='true'/> 
    </properties> 
    <units size='7'> 
    <unit id='org.eclipse.mylyn.context.core' version='3.6.2'> 
     <update id='org.eclipse.mylyn.context.core' range='[0.0.0,3.6.2)' severity='0'/> 
     <properties size='5'> 
     <property name='df_LT.Bundle-Vendor' value='Eclipse Mylyn'/> 
     <property name='df_LT.Bundle-Name' value='Mylyn Context Core'/> 
     <property name='org.eclipse.equinox.p2.name' value='%Bundle-Name'/> 
     <property name='org.eclipse.equinox.p2.provider' value='%Bundle-Vendor'/> 
     <property name='org.eclipse.equinox.p2.bundle.localization' value='plugin'/> 
     </properties> 
     <provides size='6'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context.core' version='3.6.2'/> 
     <provided namespace='osgi.bundle' name='org.eclipse.mylyn.context.core' version='3.6.2'/> 
     <provided namespace='java.package' name='org.eclipse.mylyn.context.core' version='0.0.0'/> 
     <provided namespace='java.package' name='org.eclipse.mylyn.internal.context.core' version='0.0.0'/> 
     <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/> 
     <provided namespace='org.eclipse.equinox.p2.localization' name='df_LT' version='1.0.0'/> 
     </provides> 
     <requires size='3'> 
     <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='0.0.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.mylyn.commons.core' range='[3.0.0,4.0.0)'/> 
     <required namespace='osgi.bundle' name='org.eclipse.mylyn.monitor.core' range='[3.0.0,4.0.0)'/> 
     </requires> 
     <artifacts size='1'> 
     <artifact classifier='osgi.bundle' id='org.eclipse.mylyn.context.core' version='3.6.2'/> 
     </artifacts> 
     <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/> 
     <touchpointData size='1'> 
     <instructions size='1'> 
      <instruction key='manifest'> 
      Bundle-RequiredExecutionEnvironment: J2SE-1.5&#xA;Bundle-Name: %Bundle-Name&#xA;Bundle-Activator: org.eclipse.mylyn.internal.context.core.ContextCorePlugin&#xA;Manifest-Version: 1.0&#xA;Bundle-Vendor: %Bundle-Vendor&#xA;Bundle-ClassPath: .&#xA;Bundle-ActivationPolicy: lazy&#xA;Bundle-SymbolicName: org.eclipse.mylyn.context.core;singleton:=true&#xA;Bundle-ManifestVersion: 2&#xA;Bundle-Version: 3.6.2&#xA;Bundle-Localization: plugin&#xA;Export-Package: org.eclipse.mylyn.context.core,org.eclipse.mylyn.internal.context.core;x-friends:=&quot;org.eclipse.mylyn.context.ui&quot;&#xA;Require-Bundle: org.eclipse.core.runtime,org.eclipse.mylyn.commons.core;bundle-version=&quot;[3.0.0,4.0.0)&quot;,org.eclipse.mylyn.monitor.core;bundle-version=&quot;[3.0.0,4.0.0)&quot; 
      </instruction> 
     </instructions> 
     </touchpointData> 
    </unit> 
    <unit id='custom.mylyn.extensions.feature.feature.group' version='0.0.1.201108161254' singleton='false'> 
     <update id='custom.mylyn.extensions.feature.feature.group' range='[0.0.0,0.0.1.201108161254)' severity='0'/> 
     <properties size='5'> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn Custom Extensions'/> 
     <property name='org.eclipse.equinox.p2.description' value='[Enter Feature Description here.]'/> 
     <property name='org.eclipse.equinox.p2.description.url' value='http://www.example.com/description'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     <property name='org.eclipse.equinox.p2.type.group' value='true'/> 
     </properties> 
     <provides size='1'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.feature.feature.group' version='0.0.1.201108161254'/> 
     </provides> 
     <requires size='11'> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.patchfeature.feature.group' range='[0.0.1.201108161254,0.0.1.201108161254]'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.core.runtime' range='3.6.0'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.ui' range='0.0.0'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.core.resources' range='3.6.1'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.core' range='0.0.1'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.commons.core' range='3.6.0'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.tasks.core' range='3.6.0'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context.core' range='3.6.1'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.ui.view' range='[0.0.1.201108161254,0.0.1.201108161254]'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.core' range='[0.0.1.201108161254,0.0.1.201108161254]'/> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.feature.feature.jar' range='[0.0.1.201108161254,0.0.1.201108161254]'> 
      <filter> 
      (org.eclipse.update.install.features=true) 
      </filter> 
     </required> 
     </requires> 
     <touchpoint id='null' version='0.0.0'/> 
     <licenses size='1'> 
     <license uri='http://www.example.com/license' url='http://www.example.com/license'> 
      [Enter License Description here.] 
     </license> 
     </licenses> 
     <copyright uri='http://www.example.com/copyright' url='http://www.example.com/copyright'> 
     [Enter Copyright Description here.] 
     </copyright> 
    </unit> 
    <unit id='custom.mylyn.extensions.patchfeature.feature.group' version='0.0.1.201108161254' singleton='false'> 
     <patchScope> 
     <scope> 
      <requires size='1'> 
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context_feature.feature.group' range='[3.6.1.v20110728-0200,3.6.1.v20110728-0200]'/> 
      </requires> 
     </scope> 
     </patchScope> 
     <changes> 
     <change> 
      <from> 
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context.core' range='0.0.0'/> 
      </from> 
      <to> 
      <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context.core' range='[3.6.2,3.6.2]'/> 
      </to> 
     </change> 
     </changes> 
     <lifeCycle> 
     <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.mylyn.context_feature.feature.group' range='[3.6.1.v20110728-0200,3.6.1.v20110728-0200]' greedy='false'/> 
     </lifeCycle> 
     <update id='custom.mylyn.extensions.patchfeature.feature.group' range='[0.0.0,0.0.1.201108161254)' severity='0'/> 
     <properties size='5'> 
     <property name='org.eclipse.equinox.p2.type.patch' value='true'/> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn Custom Extensions Patch'/> 
     <property name='org.eclipse.equinox.p2.description' value='This patch is necessary to add API capabilities to Mylyns context-core.'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     <property name='org.eclipse.equinox.p2.type.group' value='true'/> 
     </properties> 
     <provides size='1'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.patchfeature.feature.group' version='0.0.1.201108161254'/> 
     </provides> 
     <requires size='1'> 
     <required namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.patchfeature.feature.jar' range='[0.0.1.201108161254,0.0.1.201108161254]'> 
      <filter> 
      (org.eclipse.update.install.features=true) 
      </filter> 
     </required> 
     </requires> 
     <touchpoint id='null' version='0.0.0'/> 
     <licenses size='1'> 
     <license uri='http://www.example.com/license' url='http://www.example.com/license'> 
      [Enter License Description here.] 
     </license> 
     </licenses> 
     <copyright uri='http://www.example.com/copyright' url='http://www.example.com/copyright'> 
     [Enter Copyright Description here.] 
     </copyright> 
    </unit> 
    <unit id='custom.mylyn.extensions.core' version='0.0.1.201108161254'> 
     <update id='custom.mylyn.extensions.core' range='[0.0.0,0.0.1.201108161254)' severity='0'/> 
     <properties size='2'> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn-Extensions-Core'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     </properties> 
     <provides size='4'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.core' version='0.0.1.201108161254'/> 
     <provided namespace='osgi.bundle' name='custom.mylyn.extensions.core' version='0.0.1.201108161254'/> 
     <provided namespace='java.package' name='custom.mylyn.extensions.core.context' version='0.0.0'/> 
     <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/> 
     </provides> 
     <requires size='5'> 
     <required namespace='osgi.bundle' name='org.eclipse.mylyn.commons.core' range='3.6.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.mylyn.context.core' range='0.0.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.mylyn.tasks.core' range='3.6.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.6.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.core.resources' range='3.6.1'/> 
     </requires> 
     <artifacts size='1'> 
     <artifact classifier='osgi.bundle' id='custom.mylyn.extensions.core' version='0.0.1.201108161254'/> 
     </artifacts> 
     <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/> 
     <touchpointData size='1'> 
     <instructions size='1'> 
      <instruction key='manifest'> 
      Bundle-ManifestVersion: 2&#xA;Bundle-Name: Mylyn-Extensions-Core&#xA;Bundle-Version: 0.0.1.201108161254&#xA;Require-Bundle: org.eclipse.mylyn.commons.core;bundle-version=&quot;3.6.0&quot;,org.eclipse.mylyn.context.core,org.eclipse.mylyn.tasks.core;bundle-version=&quot;3.6.0&quot;;visibility:=reexport,org.eclipse.core.runtime;bundle-version=&quot;3.6.0&quot;,org.eclipse.core.resources;bundle-version=&quot;3.6.1&quot;&#xA;Export-Package: custom.mylyn.extensions.core.context&#xA;Bundle-RequiredExecutionEnvironment: JavaSE-1.6&#xA;Bundle-SymbolicName: custom.mylyn.extensions.core;singleton:=true&#xA;Manifest-Version: 1.0&#xA;Bundle-Vendor: Marc Schlegel 
      </instruction> 
     </instructions> 
     </touchpointData> 
    </unit> 
    <unit id='custom.mylyn.extensions.feature.feature.jar' version='0.0.1.201108161254'> 
     <properties size='4'> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn Custom Extensions'/> 
     <property name='org.eclipse.equinox.p2.description' value='[Enter Feature Description here.]'/> 
     <property name='org.eclipse.equinox.p2.description.url' value='http://www.example.com/description'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     </properties> 
     <provides size='3'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.feature.feature.jar' version='0.0.1.201108161254'/> 
     <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/> 
     <provided namespace='org.eclipse.update.feature' name='custom.mylyn.extensions.feature' version='0.0.1.201108161254'/> 
     </provides> 
     <filter> 
     (org.eclipse.update.install.features=true) 
     </filter> 
     <artifacts size='1'> 
     <artifact classifier='org.eclipse.update.feature' id='custom.mylyn.extensions.feature' version='0.0.1.201108161254'/> 
     </artifacts> 
     <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/> 
     <touchpointData size='1'> 
     <instructions size='1'> 
      <instruction key='zipped'> 
      true 
      </instruction> 
     </instructions> 
     </touchpointData> 
     <licenses size='1'> 
     <license uri='http://www.example.com/license' url='http://www.example.com/license'> 
      [Enter License Description here.] 
     </license> 
     </licenses> 
     <copyright uri='http://www.example.com/copyright' url='http://www.example.com/copyright'> 
     [Enter Copyright Description here.] 
     </copyright> 
    </unit> 
    <unit id='custom.mylyn.extensions.ui.view' version='0.0.1.201108161254'> 
     <update id='custom.mylyn.extensions.ui.view' range='[0.0.0,0.0.1.201108161254)' severity='0'/> 
     <properties size='2'> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn-Extensions-UI'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     </properties> 
     <provides size='3'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.ui.view' version='0.0.1.201108161254'/> 
     <provided namespace='osgi.bundle' name='custom.mylyn.extensions.ui.view' version='0.0.1.201108161254'/> 
     <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/> 
     </provides> 
     <requires size='4'> 
     <required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='3.6.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.ui' range='0.0.0'/> 
     <required namespace='osgi.bundle' name='org.eclipse.core.resources' range='0.0.0'/> 
     <required namespace='osgi.bundle' name='custom.mylyn.extensions.core' range='0.0.1'/> 
     </requires> 
     <artifacts size='1'> 
     <artifact classifier='osgi.bundle' id='custom.mylyn.extensions.ui.view' version='0.0.1.201108161254'/> 
     </artifacts> 
     <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/> 
     <touchpointData size='1'> 
     <instructions size='1'> 
      <instruction key='manifest'> 
      Bundle-ManifestVersion: 2&#xA;Bundle-Version: 0.0.1.201108161254&#xA;Require-Bundle: org.eclipse.core.runtime;bundle-version=&quot;3.6.0&quot;,org.eclipse.ui,org.eclipse.core.resources,custom.mylyn.extensions.core;bundle-version=&quot;0.0.1&quot;&#xA;Manifest-Version: 1.0&#xA;Bundle-SymbolicName: custom.mylyn.extensions.ui.view;singleton:=true&#xA;Bundle-Name: Mylyn-Extensions-UI&#xA;Bundle-RequiredExecutionEnvironment: JavaSE-1.6&#xA;Bundle-Vendor: Marc Schlegel 
      </instruction> 
     </instructions> 
     </touchpointData> 
    </unit> 
    <unit id='custom.mylyn.extensions.patchfeature.feature.jar' version='0.0.1.201108161254'> 
     <properties size='3'> 
     <property name='org.eclipse.equinox.p2.name' value='Mylyn Custom Extensions Patch'/> 
     <property name='org.eclipse.equinox.p2.description' value='This patch is necessary to add API capabilities to Mylyns context-core.'/> 
     <property name='org.eclipse.equinox.p2.provider' value='Marc Schlegel'/> 
     </properties> 
     <provides size='3'> 
     <provided namespace='org.eclipse.equinox.p2.iu' name='custom.mylyn.extensions.patchfeature.feature.jar' version='0.0.1.201108161254'/> 
     <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='feature' version='1.0.0'/> 
     <provided namespace='org.eclipse.update.feature' name='custom.mylyn.extensions.patchfeature' version='0.0.1.201108161254'/> 
     </provides> 
     <filter> 
     (org.eclipse.update.install.features=true) 
     </filter> 
     <artifacts size='1'> 
     <artifact classifier='org.eclipse.update.feature' id='custom.mylyn.extensions.patchfeature' version='0.0.1.201108161254'/> 
     </artifacts> 
     <touchpoint id='org.eclipse.equinox.p2.osgi' version='1.0.0'/> 
     <touchpointData size='1'> 
     <instructions size='1'> 
      <instruction key='zipped'> 
      true 
      </instruction> 
     </instructions> 
     </touchpointData> 
     <licenses size='1'> 
     <license uri='http://www.example.com/license' url='http://www.example.com/license'> 
      [Enter License Description here.] 
     </license> 
     </licenses> 
     <copyright uri='http://www.example.com/copyright' url='http://www.example.com/copyright'> 
     [Enter Copyright Description here.] 
     </copyright> 
    </unit> 
    </units> 
</repository> 
+0

您可以在安裝功能補丁後檢查eclipse配置文件中'org.eclipse.mylyn.context.core'的版本嗎? 個人資料可能位於 \ p2 \ org.eclipse.equinox.pengging \ profileRegistry \ <個人資料名稱> .profile \ <最新時間戳> .profile.gz – Kane

+0

對不起,對於遲到的答案。該配置文件提到了多個版本:它包含我的修補程序(但當然插件不存在),底部有一個帶有最新官方發佈版本的unit-id。 – lostiniceland

+0

我只是試圖將修補後的插件複製到「plugins」文件夾中,因爲配置文件具有修補程序說明,​​但該軟件包未加載(測試失敗,安裝細節仍顯示舊版本的mylyn.context.core) – lostiniceland

回答

1

bugzilla發現了同樣的問題所產生的content.xml。

總而言之,您嘗試修補不包括插件的功能。你應該修補「org.eclipse.mylyn_feature」。

+0

我用你的情況來創建一個簡單的補丁。有用。你可以下載[repository](http://dl.dropbox.com/u/4064358/featurepatch/repo.tar.gz)和[源代碼](http://dl.dropbox.com/u/4064358/ featurepatch/mylyn.patch.tar.gz)。 – Kane

+0

LOL ...我發現了最後的問題。我的補丁有一個版本0.0.1.qualifier,在我將其更改爲1.0.0.qualifier後,所有安裝的內容都已經安裝。謝謝你的幫助......你真的贏得了賞金:-) – lostiniceland