Tycho无法从我自己的普通Maven依赖包装器中解析包

时间:2012-07-26 15:04:34

标签: maven eclipse-plugin tycho

我正在尝试创建一个Eclipse插件,它依赖于普通的Maven工件。我创建了以下项目结构:

Parent POM
 |- Dependencies (Third Party)
 \- My Code
     |- Bundle
     \- Bundle Tests

我已经关注了Tycho示例itp02但仅使用了第三方依赖项。据我所知,这个想法是将所有依赖项包装在一个包中,并将其用作我的包的输入。我设法正确构建和安装Dependencies包:创建一个jar,它包含从Maven存储库获取的所有JAR文件。但是当我尝试编译我的包时,我收到一条错误,指出我的包清单中的包无法导入。

[ERROR]   Missing requirement: MyPlugin 0.0.1.qualifier requires 'package org.apache.commons.lang.StringEscapeUtils 0.0.0' but it could not be found
[ERROR] 
[ERROR] Internal error: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from MyPlugin 0.0.1.qualifier to package org.apache.commons.lang.StringEscapeUtils 0.0.0.", "No solution found because the problem is unsatisfiable."] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from MyPlugin 0.0.1.qualifier to package org.apache.commons.lang.StringEscapeUtils 0.0.0.", "No solution found because the problem is unsatisfiable."]

我错过了什么?

1 个答案:

答案 0 :(得分:5)

从您的描述中不清楚您的项目是如何设置的,或者是您用于构建项目的命令。 然而,你的“POM父母”似乎暗示你试图一次性建立它。如果是这种情况,你不能在同一个构建中混合使用pom-first(maven-bundle-plugin)项目和manifest-first(eclispe-plugin)项目[1]。您需要首先将pom-first项目构建并安装到本地maven存储库中,然后才能构建清单优先项目。

要检查的第二件事是你已经配置了正确的依赖项,并且你已经设置了pomDependencies =如[2]中所述。

最后,如果这没有帮助,请检查本地maven存储库中的jar文件是否具有META-INF / MANIFEST.MF以及正确的“Export-Package”语句 - 特别是org.apache应该有一行.commons.lang.StringEscapeUtils。

[1] http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts#It_is_not_possible_to_mix_pom-first_and_manifest-first_projects_in_the_same_reactor_build

[2] http://git.eclipse.org/c/tycho/org.eclipse.tycho-demo.git/tree/itp02/build02/pom.xml