介紹:我問在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
Bundle-Name: %Bundle-Name
Bundle-Activator: org.eclipse.mylyn.internal.context.core.ContextCorePlugin
Manifest-Version: 1.0
Bundle-Vendor: %Bundle-Vendor
Bundle-ClassPath: .
Bundle-ActivationPolicy: lazy
Bundle-SymbolicName: org.eclipse.mylyn.context.core;singleton:=true
Bundle-ManifestVersion: 2
Bundle-Version: 3.6.2
Bundle-Localization: plugin
Export-Package: org.eclipse.mylyn.context.core,org.eclipse.mylyn.internal.context.core;x-friends:="org.eclipse.mylyn.context.ui"
Require-Bundle: org.eclipse.core.runtime,org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",org.eclipse.mylyn.monitor.core;bundle-version="[3.0.0,4.0.0)"
</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
Bundle-Name: Mylyn-Extensions-Core
Bundle-Version: 0.0.1.201108161254
Require-Bundle: org.eclipse.mylyn.commons.core;bundle-version="3.6.0",org.eclipse.mylyn.context.core,org.eclipse.mylyn.tasks.core;bundle-version="3.6.0";visibility:=reexport,org.eclipse.core.runtime;bundle-version="3.6.0",org.eclipse.core.resources;bundle-version="3.6.1"
Export-Package: custom.mylyn.extensions.core.context
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-SymbolicName: custom.mylyn.extensions.core;singleton:=true
Manifest-Version: 1.0
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
Bundle-Version: 0.0.1.201108161254
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.6.0",org.eclipse.ui,org.eclipse.core.resources,custom.mylyn.extensions.core;bundle-version="0.0.1"
Manifest-Version: 1.0
Bundle-SymbolicName: custom.mylyn.extensions.ui.view;singleton:=true
Bundle-Name: Mylyn-Extensions-UI
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
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>
您可以在安裝功能補丁後檢查eclipse配置文件中'org.eclipse.mylyn.context.core'的版本嗎? 個人資料可能位於 \ p2 \ org.eclipse.equinox.pengging \ profileRegistry \ <個人資料名稱> .profile \ <最新時間戳> .profile.gz –
Kane
對不起,對於遲到的答案。該配置文件提到了多個版本:它包含我的修補程序(但當然插件不存在),底部有一個帶有最新官方發佈版本的unit-id。 – lostiniceland
我只是試圖將修補後的插件複製到「plugins」文件夾中,因爲配置文件具有修補程序說明,但該軟件包未加載(測試失敗,安裝細節仍顯示舊版本的mylyn.context.core) – lostiniceland