Tycho build error: "... requires bundle ... but it could not be found"
Tycho build error: "... requires bundle ... but it could not be found"
我们有一个 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 列表中正在验证的插件的第一项。
我查看了其他问题,但其中 none 似乎解决了这个特定问题。任何建议将不胜感激。
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
如果我从 pom 中删除 <repository>
标签,我会得到类似的错误。
如果没有这些信息,Tycho 就不知道从哪里下载所需的包。
因此,您必须将以下代码片段添加到您的 pom:
<repository>
<id>eclipse-indigo</id>
<url>http://download.eclipse.org/releases/indigo</url>
<layout>p2</layout>
</repository>
Tycho 读取您的 MANIFEST.MF 和 feature.xml 以找到插件的依赖项并将它们(临时)添加到 Maven 用于执行构建的 POM。 Tycho 的想法是仅在 MANIFEST.MF 和 feature.xml 中维护依赖关系,从而使您无需将它们也添加到 POM 中。但是,您仍然需要添加一个适当的存储库,通常在父 POM 中,其中可以找到依赖的插件。这显然在您的 POM 中缺失。
我们有一个 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 列表中正在验证的插件的第一项。
我查看了其他问题,但其中 none 似乎解决了这个特定问题。任何建议将不胜感激。
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
如果我从 pom 中删除 <repository>
标签,我会得到类似的错误。
如果没有这些信息,Tycho 就不知道从哪里下载所需的包。
因此,您必须将以下代码片段添加到您的 pom:
<repository>
<id>eclipse-indigo</id>
<url>http://download.eclipse.org/releases/indigo</url>
<layout>p2</layout>
</repository>
Tycho 读取您的 MANIFEST.MF 和 feature.xml 以找到插件的依赖项并将它们(临时)添加到 Maven 用于执行构建的 POM。 Tycho 的想法是仅在 MANIFEST.MF 和 feature.xml 中维护依赖关系,从而使您无需将它们也添加到 POM 中。但是,您仍然需要添加一个适当的存储库,通常在父 POM 中,其中可以找到依赖的插件。这显然在您的 POM 中缺失。