开发者

Problem with p2.inf file when building eclipse product

I have an eclipse product that depends on a feature. Now I would like to be able to update this feature. I would also like to be able to start the application with a predefined update site. I have created a p2.inf file which contains (based on: http://aniefer.blogspot.com/2009/07/composing-and-updating-custom-eclipse.html):

requires.0.name = com.application.feature.group
requires.0.range = [1.0.0.qualifier, 2.0.0.qualifier)

instructions.configure=\
  addRepository(type:0,location:https${#58}//ccp.com/);\
  addRepository(type:1,location:https${#58}//ccp.com/);

But the updatesite ccp.com does not shown when I go to the install manager in the build product (it works fine if I remove the 'requires' commands).

Are there anything wrong with the above p2.inf file?

I have now tried:

requires.0.namespace=org.eclipse.equinox.p2.iu
requires.0.name = com.application.feature.group
requires.0.range = [1.0.0.qualifier, 2.0.0.qualifier)

instructions.configure=\
  addRepository(type:0,location:https${#58}//ccp.com/);\
  addRepository(type:1,location:https${#58}//ccp.com/);

but when I build it I get the error:

Cannot complete the install because one or more required items could not be found.
Software being installed:
MyProduct 1.0.0.201102161136 (com.application.product 1.0.0.201102161136) Missing requirement: 
MyProduct 1.0.0.201102161136 (com.application.product 1.0.0.201102161136) requires 'com.application.fea开发者_JAVA技巧ture.group [1.0.0.qualifier,2.0.0.qualifier)' 
but it could not be found
Application failed, log file location: ...

I have also tried to remove the qualifier from the p2.inf file in the version range and on my feature, but get the same error. Any ideas?


Try adding

requires.0.namespace=org.eclipse.equinox.p2.iu

I suspect that not specifying the namespace leaves it as null in the p2.inf parser, eventually leading to an assertion failure on a Assert.isNotNull(namespace), or an NPE. Either of these would probably cause the entire p2.inf file to be ignored.


I found that I needed to use the p2.context.repos option to pass in the repositories containing the items referred to in p2.inf. Using this and pluginPath in tandem was the key.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜