Tycho构建错误:"...需要bundle ...,但找不到它"

8

我们有一个基于Eclipse Luna插件的应用程序,现在我们试图使用Tycho构建。当我们尝试运行mvn clean verify时,我们会收到以下类似的消息:

[ERROR]  Cannot resolve project dependencies:
[ERROR]   Software being installed: our.app 1.0.0.qualifier
[ERROR]   Missing requirement: our.app 1.0.0.qualifier requires 'bundle org.eclipse.core.runtime 3.7.0' but it could not be found

当我们查看日志时,似乎需要的任何Eclipse插件都会给我们带来这个错误,并且这只是要验证的插件的MANIFEST.MF列表中的第一项。我查看了其他问题,但似乎没有一个能解决这个特定的问题。非常感谢任何建议。
MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Our App
Bundle-SymbolicName: our.app;singleton:=true
Built-By: Our Team (2014)
Bundle-ClassPath: .,
 <some jars>
Bundle-Vendor: Our Team
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
 org.eclipse.ui;bundle-version="3.7.0",
 org.eclipse.ui.ide;bundle-version="3.7.0",
 org.eclipse.core.resources;bundle-version="3.7.0",
 org.eclipse.ui.forms;bundle-version="3.6.0",
 org.eclipse.wst.sse.ui;bundle-version="1.3.0",
 org.eclipse.jface.text;bundle-version="3.8.100",
 org.eclipse.ui.workbench.texteditor;bundle-version="3.8.101",
 org.eclipse.ui.views;bundle-version="3.6.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Version: 1.0.0.qualifier

当我添加依赖项时,我会进入项目中的plugin.xml文件,点击依赖关系选项卡,然后添加所需的依赖项。 - Chris Bolton
错误信息的下一行是[ERROR] See http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting for help. 你看过那个页面了吗? - oberlies
2个回答

7
如果我从pom文件中删除<repository>标签,就会遇到类似的错误。如果没有这个信息,Tycho不知道从哪里下载所需的包。因此,您需要将以下代码段添加到您的pom文件中:
<repository>
   <id>eclipse-indigo</id>
   <url>http://download.eclipse.org/releases/indigo</url>
   <layout>p2</layout>
</repository>

我从这里复制了一小段代码。如需更多信息,请查看此处


我曾经遇到了类似的错误,因为 Tycho 找不到我的插件,后来通过添加本地仓库解决了这个问题。谢谢。 - Ahmed Laatabi

6
Tycho会读取你的MANIFEST.MF和feature.xml文件,查找插件的依赖关系,并将它们(暂时)添加到用于执行构建的Maven POM中。Tycho的理念是仅在MANIFEST.MF和feature.xml中维护依赖关系,无需再将其添加到POM中。但是,你仍然需要添加一个适当的仓库,通常在父POM中,以便找到所依赖的插件。很明显,这在你的POM中缺失了。

谢谢!这是正确的,而且有效。我试图将两个答案都标记为正确,但无法标记您的答案。 - Andrew Machen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接