我想从位于maven中心的OSGI包中生成一个P2存储库。 我有
当我尝试构建该功能时,我会收到
No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from org.codehaus.jackson.feature.group 1.9.1.qualifier to jackson-mapper-lgpl [1.9.12,1.9.13).", "Unable to satisfy dependency from org.codehaus.jackson.feature.group 1.9.1.qualifier to jackson-core-lgpl [1.9.12,1.9.13).", "No solution found because the problem is unsatisfiable."]
org.codehaus.jackson.feature 是我正在构建的功能和 jackson-mapper-lgpl [1.9.12,1.9.13)和 jackson-core-lgpl [1.9.12,1.9.13] 是我试图包含的OSGI包的规范。
当我打开调试模式时,我看到正在找到组件,这使得行为更奇怪:
[DEBUG] P2Resolver: artifact org.codehaus.jackson:jackson-core-lgpl:1.9.12 at location /home/jsuess/.m2/repository/org/codehaus/jackson/jackson-core-lgpl/1.9.12/jackson-core-lgpl-1.9.12.jar resolves installable unit jackson-core-lgpl/1.9.12
[DEBUG] P2resolver.addMavenArtifact org.codehaus.jackson:jackson-mapper-lgpl:jar:1.9.12:compile
[DEBUG] P2Resolver: artifact org.codehaus.jackson:jackson-mapper-lgpl:1.9.12 at location /home/jsuess/.m2/repository/org/codehaus/jackson/jackson-mapper-lgpl/1.9.12/jackson-mapper-lgpl-1.9.12.jar resolves installable unit jackson-mapper-lgpl/1.9.12
[DEBUG] Registered artifact repository org.eclipse.tycho.repository.registry.facade.RepositoryBlackboardKey(uri=file:/resolution-context-artifacts@/home/jsuess/workspace/org.codehaus.jackson/features/org.codehaus.jackson)
我相信从maven中创建捆绑包并创建P2必须是一个常见的用例,所以我想知道是否有人可以指出我可以用作模板的工作样本POM。
答案 0 :(得分:1)
请注意,Tycho构建中的每个模块都有一个单独的目标平台。
因此,如果您使用pomDependencies=consider
,但只在eclipse-feature
模块上配置此开关和/或依赖项,则POM依赖项将仅位于模块的目标平台中。如果您尝试将该功能打包到eclipse-repository
中,则该模块的依赖性解析将因为该功能缺少(传递)依赖性而失败。
在大多数情况下,每个模块不需要不同的目标平台,因此通常应将所有target platform configuration和POM依赖项放入父POM中。
如果您已完成此操作,但其中一个模块似乎仍有不同的目标平台,请确保该模块的父POM引用正确 - 并且您没有引用父POM的旧版本