构建eclipse产品时p2.inf文件出现问题

时间:2011-02-14 14:44:50

标签: eclipse auto-update

我有一个取决于功能的日食产品。现在我希望能够更新此功能。我还希望能够使用预定义的更新站点启动应用程序。我创建了一个p2.inf文件,其中包含(基于: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/);

但是当我转到构建产品中的安装管理器时,却没有显示updatesite ccp.com(如果我删除'requires'命令,它会正常工作)。

上面的p2.inf文件有什么问题吗?

我现在尝试过:

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/);

但是当我构建它时,我收到错误:

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.feature.group [1.0.0.qualifier,2.0.0.qualifier)' 
but it could not be found
Application failed, log file location: ...

我还试图从版本范围和我的功能中删除p2.inf文件中的限定符,但得到相同的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试添加

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

我怀疑没有指定命名空间会在p2.inf解析器中将其保留为null,最终会导致Assert.isNotNull(namespace)或NPE上的断言失败。这些中的任何一个都可能导致整个p2.inf文件被忽略。

答案 1 :(得分:0)

我发现我需要使用p2.context.repos选项传入包含p2.inf中引用的项的存储库。串联使用这个和pluginPath是关键。