【发布时间】:2016-06-03 08:49:22
【问题描述】:
我有一个需要一个库的项目。该库已经在本地复制中。我通过它的pom.xml 告诉该项目它依赖于这个库,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.mygui</groupId>
<artifactId>de.mygui.app.releng</artifactId>
<relativePath>../de.mygui.app.releng/pom.xml</relativePath>
<version>1.0.0-SNAPSHOT</version>
</parent>
<groupId>de.mygui</groupId>
<artifactId>de.mygui.map</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<dependencies>
<dependency>
<groupId>common</groupId>
<artifactId>my.util.geo</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
项目清单如下所示:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: gui map
Bundle-SymbolicName: de.mygui.map;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: my.util.geo;version="2.0.0"
my.util.geo 清单:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Geo
Bundle-SymbolicName: my.util.geo
Bundle-Version: 1.0.0
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: my.util.geo
Require-Bundle: org.proj4j;bundle-version="0.1.0"
当运行父 POM 编译所有内容(以及其他必需的项目)时,我收到以下错误:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: de.mygui.app.feature.feature.group 1.0.0.qualifier
[ERROR] Missing requirement: de.mygui.map 1.0.0.qualifier requires 'package my.util.geo 2.0.0' but it could not be found
[ERROR] Cannot satisfy dependency: de.mygui.app.feature.feature.group 1.0.0.qualifier depends on: de.mygui.map 0.0.0
[ERROR]
[ERROR] See http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting for help.
[ERROR] Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml: See log for details -> [Help 1]
org.apache.maven.MavenExecutionException: Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:100)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:274)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.eclipse.tycho.artifacts.DependencyResolutionException: Cannot resolve dependencies of MavenProject: de.mygui:de.mygui.app.feature:1.0.0-SNAPSHOT @ /home/myuser/dev/gui/de.mygui.app.feature/pom.xml
at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:202)
at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:116)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.doResolveDependencies(P2DependencyResolver.java:367)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.resolveDependencies(P2DependencyResolver.java:335)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:117)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:95)
... 13 more
Caused by: org.eclipse.tycho.p2.util.resolution.ResolverException: See log for details
at org.eclipse.tycho.p2.util.resolution.ProjectorResolutionStrategy.resolve(ProjectorResolutionStrategy.java:88)
at org.eclipse.tycho.p2.util.resolution.AbstractResolutionStrategy.resolve(AbstractResolutionStrategy.java:42)
at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:195)
... 18 more
在我看来,Maven 首先查看清单,然后查看 POM 中的依赖项。如您所见,我更改了my.util.geo 的版本号以验证清单是否在POM 之前使用。即使我在清单和 POM 中有相同的版本,Maven 仍然无法解决依赖关系。
我能做些什么来解决这个问题?
【问题讨论】:
-
你能给我们看看
my.util.geo库的清单吗? -
这个错误似乎和
de.mygui.app.feature.feature.group有关,你能不能也给我们看看这个? -
@AlexandreCartapanis 我添加了 my.util.geo 清单。该功能组是 RCP E4 构建过程的一部分。我不认为命中是问题。整个构建过程一直有效到几天前。那时所有必需的项目(文件夹)都在一个文件夹中。但现在开始将它们分开,以便 util 项目只能通过 maven 及其本地 repro 访问
-
什么maven插件产生这个错误?
-
确认
my.util.geomanifest 的Bundle-Version: 1.0.0和de.gui.mapmanifest 的Import-Package: my.util.geo;version="2.0.0"指令只是为了测试