Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tycho未能从不同的反应堆构建中解析从产品到eclipse特性的引用_Eclipse_Maven_Eclipse Plugin_Eclipse Rcp_Tycho - Fatal编程技术网

Tycho未能从不同的反应堆构建中解析从产品到eclipse特性的引用

Tycho未能从不同的反应堆构建中解析从产品到eclipse特性的引用,eclipse,maven,eclipse-plugin,eclipse-rcp,tycho,Eclipse,Maven,Eclipse Plugin,Eclipse Rcp,Tycho,我已经建造了两座反应堆: 第一个构建了一些bundle和相应的特性。成功的clean安装后该功能在我的本地Maven repo中。Tycho还生成了p2元信息…-p2artifacts.xml和…-p2metadata.xml 第二个构建包含一个基于特性的产品,它引用了第一个反应堆中构建的特性。尝试干净安装时Tycho抱怨一个未解决的功能-另一个反应堆构建的功能 未能执行目标 org.eclipse.tycho:tycho-p2-repository-plugin:0.12.0:Assembly

我已经建造了两座反应堆:

第一个构建了一些bundle和相应的特性。成功的
clean安装后
该功能在我的本地Maven repo中。Tycho还生成了p2元信息…
-p2artifacts.xml
和…
-p2metadata.xml

第二个构建包含一个基于特性的产品,它引用了第一个反应堆中构建的特性。尝试
干净安装时
Tycho抱怨一个未解决的功能-另一个反应堆构建的功能

未能执行目标 org.eclipse.tycho:tycho-p2-repository-plugin:0.12.0:Assembly repository[…][“无法满足TestApp2 1.0.0到my.testlib.feature.feature.group的依赖关系[1.0.0.201109081051]。”]

如您所见,我使用的是Tycho 0.12.0,当设置了
pomDependencies=consive
标志时,它应该能够解析本地maven存储库的工件,我就是这么做的

我查看了本地maven repo生成的p2元信息,发现功能版本有点不同。p2artifacts.xml中的功能版本如下:

版本='1.0.0.201109071453'

比较两个版本

1.0.0.201109081051 // what tycho looks for
1.0.0.201109071453 // what's in my local mvn repo
只有最后一位不同,可能是时间戳

有人知道为什么第谷抱怨未解决的功能吗?时间戳重要吗

更新:由于第二次构建的时间戳会更改每个构建,因此我假设它是当前时间戳

在引用.product中的功能时,您可能正在使用“.qualifier”作为版本后缀。 默认情况下,“.qualifier”由构建时间戳替换,因此这可能不是您想要的。
尝试改用“0.0.0”(=最新版本)。

您的产品文件似乎在另一个反应器中对您的功能的引用中指定了版本
1.0.0.限定符

由于Tycho()中的错误,
限定符
文字没有被正确的时间戳替换。在这种情况下:Tycho使用当前构建的时间戳(正如您正确观察到的),而不是目标平台中可用的功能版本的时间戳

正如Jan已经指出的,这个问题的解决方法是在引用功能时使用版本
0.0.0

与所有“包含”参考(即功能“包括”插件,产品“包括”功能)一样,Tycho将用目标平台的实际版本替换该版本。(注意:以前使用
mvn clean install
的Tycho构建的工件是可用的。)但使用
0.0.0
时,这甚至可以在两个反应堆的情况下正常工作


供参考:对于较新的Tycho版本,问题中描述的设置情况下的错误消息不同:

未能执行目标org.eclipse.tycho:tycho-p2-publisher-plugin:0.22.0:发布产品(…):发布产品时出现异常(…)\test.product:publishing结果:[包含的元素my.testlib.feature.feature.group 1.0.0.201109081051缺失。无法确定此元素要求的筛选器。]


此消息是由于相同的Tycho错误引起的,解决方法也是相同的。

“…当设置了pomDependencies=考虑标志时”-这不是必需的。Tycho总是可以使用以前的
mvn安装
builds中的工件,除非我遇到了同样的问题,并通过基于当前git提交添加一个解决了这个问题。这样,构建1和构建2(在相同的签出上操作)使用相同的限定符生成工件,即使它们在不同的时间运行。