问题
I trying to update an Eclipse-RCP-3.5 based application by an P2 update-site. The Application contains two features.
Product is built by Eclipse Buckminster
. Creation of the P2 update site is part of the product build.
When start the update by menu: Update -> Check for Updates
a messages box is shown: There is nothing to update.
When i try menu: Update -> Install New Software...
and select the same update-site an error is reported:
Your original request has been modified. "Verinice Anwendung" is already installed, so an update will be performed instead. "verinice server Feature" is already installed, so an update will be performed instead. Cannot complete the install because of a conflicting dependency. Software being installed: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142) Software currently installed: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1) Only one of the following can be installed at once: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007130142) Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007021358) Cannot satisfy dependency: From: Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007021358) To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007021358] Cannot satisfy dependency: From: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142) To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007130142] Cannot satisfy dependency: From: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1) To: sernet.gs.ui.rcp.main.feature.feature.group [1.1.1.201007021358]
回答1:
You need to build a new version of the product.
p2 distinguishes between what is "installed" and what is "required by the things that are installed". Your product sernet.gs.ui.rcp.main.product
is the thing that is installed. Everything else is required by that. "Check for Updates" is looking for a new version of sernet.gs.ui.rcp.main.product
.
By installing the feature, you are adding it to the list of things that are installed (instead of just required by the things installed). However, you still have the original product which has a requirement on a specific version of that feature. That requirement conflicts with the new version of the feature.
This came up a few times on the eclipse forums. You might be interested in this blog post I wrote in response.
来源:https://stackoverflow.com/questions/3238144/p2-update-of-rcp-based-application-fails