当我用tycho-maven-plugin构建项目时,遇到以下消息:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: foo-updatesite raw:0.2.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.2.0-SNAPSHOT
[ERROR] Missing requirement for filter properties ~= $0: foo-feature.feature.group 0.2.0.qualifier requires 'foo-plugin 0.0.0' but it could not be found
[ERROR] Cannot satisfy dependency: foo-updatesite raw:0.2.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.2.0-SNAPSHOT depends on: foo-feature.feature.group [0.2.0,0.2.1)
构建更新站点时发生此错误。插件和功能正常构建。我从PDE构建更新站点时没有问题。
项目结构很常见:有一个带有pom
包装的父项目和三个模块:插件,功能和更新站点。当然,我从父项目中调用mvn clean package
。
此错误的原因可能是什么?如何调试?
UPD:我尝试了很多事情:删除了“祖父母” pom,删除了SNAPSHOT /限定符,并进行了配置。但是,我找到了解决方案:我将tycho切换为0.19而不是0.21。因此,我认为tycho 0.21中有一个错误。
错误消息
Missing requirement for filter properties ~= $0
表示在foo-plugin
中包含插件feature.xml
时,您已定义了环境过滤器。但是,这不能解释您看到的依赖性解析错误。我能够重现错误消息的唯一方法是通过使用与POM中的环境配置不匹配的值在插件清单中添加Eclipse-PlatformFilter
标头。
我有相同的错误消息:
Missing requirement for filter properties ~= $0: foo-feature.feature.group 0.2.0.qualifier requires 'foo-plugin 0.0.0' but it could not be found
[由于某种原因,此错误(也)表示foo-plugin
存在...两次。
因此,在您的情况下,请打开“目标编辑器”的“内容”选项卡,并确保在两个不同的版本中不存在foo-plugin
。我通常的做法是,如果两个功能包含相同的捆绑包。