Community
Participate
Working Groups
Build Identifier: M20110909-1335 Trying to build an Eclipse feature listing platform-specific fragments for different platforms than the current one fails with the following resolution problem: [INFO] Cannot complete the request. Generating details. [INFO] Cannot complete the request. Generating details. [INFO] {org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1, osgi.ws=win32, osgi.arch=x86, osgi.os=win32, org.eclipse.update.install.features=true, org.osgi.framework.system.packages=} [ERROR] Cannot resolve project dependencies: [ERROR] Software being installed: com.example.feature.feature.group 1.0.0.qualifier [ERROR] Missing requirement: com.example.feature.feature.group 1.0.0.qualifier requires 'org.eclipse.equinox.launcher.win32.win32.x86_64 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 com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.equinox.launcher.win32.win32.x86_64 0.0.0.", "Unable to satisfy dependency from com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.swt.win32.win32.x86_64 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 com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.equinox.launcher.win32.win32.x86_64 0.0.0.", "Unable to satisfy dependency from com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.swt.win32.win32.x86_64 0.0.0.", "No solution found because the problem is unsatisfiable."] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534) 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:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable.": ["Unable to satisfy dependency from com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.equinox.launcher.win32.win32.x86_64 0.0.0.", "Unable to satisfy dependency from com.example.feature.feature.group 1.0.0.qualifier to org.eclipse.swt.win32.win32.x86_64 0.0.0.", "No solution found because the problem is unsatisfiable."] at org.eclipse.tycho.p2.impl.resolver.ProjectorResolutionStrategy.resolve(ProjectorResolutionStrategy.java:106) at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveProject(P2ResolverImpl.java:102) at org.eclipse.tycho.p2.impl.resolver.P2ResolverImpl.resolveProject(P2ResolverImpl.java:69) at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.doResolvePlatform(P2TargetPlatformResolver.java:342) at org.eclipse.tycho.p2.resolver.P2TargetPlatformResolver.resolvePlatform(P2TargetPlatformResolver.java:162) at org.eclipse.tycho.core.resolver.DefaultTychoDependencyResolver.resolveProject(DefaultTychoDependencyResolver.java:85) at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:91) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:273) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) ... 11 more [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/InternalErrorException This happens even if the platforms for which to resolve plugins are specified in the pom.xml as follows: <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>target-platform-configuration</artifactId> <version>${tycho-version}</version> <configuration> <resolver>p2</resolver> <environments> <environment> <os>win32</os> <ws>win32</ws> <arch>x86</arch> </environment> <environment> <os>win32</os> <ws>win32</ws> <arch>x86_64</arch> </environment> </environments> </configuration> </plugin> It seems tycho only uses the IUs for the platform which is defined first: [INFO] {org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1, osgi.ws=win32, osgi.arch=x86, osgi.os=win32, org.eclipse.update.install.features=true, org.osgi.framework.system.packages=} I did not find a way to tell tycho to resolve the IUs for *both* platforms defined, i.e. x86 *and* x86_64. See the attached projects to reproduce the error. Reproducible: Always Steps to Reproduce: 1. Extract the attached projects into a new workspace. 2. Run Maven - Install on com.example.parent. This works. 3. Run maven - Install on com.example.feature. This fails with the error described above.
Created attachment 204742 [details] Sample projects to reproduce.
Tycho has to resolve separately per platform, and since you get an error in the first iteration, it seems that Tycho only uses the first environment. The root cause of your problem is an invalid feature.xml: You try to unconditionally include fragments wich are not applicable for all platforms. This doesn't work. You need to define a platform filter for the inclusions ("Plug-ins" tab, right-hand side of the editor).