Discussion:
[tycho-dev] TR: tycho-versions-plugin and maven profiles
Christophe Olivier
2017-10-10 09:49:32 UTC
Permalink
Hi,

We are facing some issues with the “tycho-versions-plugin” and maven profiles.
We didn’t succeed to get it working using tycho version 1.0.0 or 1.1.0-SNAPSHOT

Here you can find an example to reproduce the error: https://github.com/chrisolivier/tycho-example
This is a RCP/RAP application using profiles to be able to build both versions.

The project contains some optional dependencies that we ignore with the tag ‘<optionalDependencies>’ and extra requirement for each profile like ‘org.eclipse.ui’ and ‘org.eclipse.rap.ui’ etc ..
We also use tycho-pomless 1.0.0
The application structure was inspired by this tutorial : http://www.vogella.com/tutorials/EclipseTycho/article.html#exercise-configure-tycho-build

Using the following command line we get a ResolverException :
./mvnw org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=1.2.0-SNAPSHOT -Dartifacts=com.compufirst.configuration -P rcp,rap -e


[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: com.compufirst.rcp 1.1.0.qualifier
[ERROR] Missing requirement: com.compufirst.rcp 1.1.0.qualifier requires 'bundle org.eclipse.swt 0.0.0' but it could not be found
[ERROR]
[ERROR] See http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting for help.
[ERROR] Cannot resolve dependencies of MavenProject: com.compufirst.tycho:com.compufirst.rcp:1.1.0-SNAPSHOT @ C:\Users\christophe\git\tycho-example\bundles\com.compufirst.rcp\.polyglot.build.properties: See log for details -> [Help 1]
org.apache.maven.MavenExecutionException: Cannot resolve dependencies of MavenProject: com.compufirst.tycho:com.compufirst.rcp:1.1.0-SNAPSHOT @ C:\Users\christophe\git\tycho-example\bundles\com.compufirst.rcp\.polyglot.build.properties
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:100)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:267)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
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:497)
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)
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:497)
at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:60)
Caused by: org.eclipse.tycho.artifacts.DependencyResolutionException: Cannot resolve dependencies of MavenProject: com.compufirst.tycho:com.compufirst.rcp:1.1.0-SNAPSHOT @ C:\Users\christophe\git\tycho-example\bundles\com.compufirst.rcp\.polyglot.build.properties
at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:201)
at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies(P2ResolverImpl.java:115)
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)
... 21 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:194)
... 26 more

With only one profile we get a NPE :
./mvnw org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=1.2.0-SNAPSHOT -Dartifacts=com.compufirst.configuration -P rcp -e


[ERROR] Failed to execute goal org.eclipse.tycho:tycho-versions-plugin:1.1.0-SNAPSHOT:set-version (default-cli) on project com.compufirst.tycho.root: Execution default-cli of goal org.eclipse.tycho:tycho-versions-plugin:1.1.0-SNAPSHOT:set-version failed.: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-versions-plugin:1.1.0-SNAPSHOT:set-version (default-cli) on project com.compufirst.tycho.root: Execution default-cli of goal org.eclipse.tycho:tycho-versions-plugin:1.1.0-SNAPSHOT:set-version failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
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:497)
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)
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:497)
at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:60)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.eclipse.tycho:tycho-versions-plugin:1.1.0-SNAPSHOT:set-version failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 27 more
Caused by: java.lang.NullPointerException
at org.eclipse.tycho.versions.engine.VersionsEngine.getProject(VersionsEngine.java:167)
at org.eclipse.tycho.versions.engine.VersionsEngine.getMutablePom(VersionsEngine.java:89)
at org.eclipse.tycho.versions.engine.VersionsEngine.addVersionChange(VersionsEngine.java:81)
at org.eclipse.tycho.versions.SetMojo.execute(SetMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 28 more


If we comment 1 profile in pom files and run it again it’s working, obviously only bundles referenced within the remaining profile are updated.
Have we done something wrong in our pom files or is it a bug ?

Thanks

Christophe


[Loading Image...]<https://www.linkedin.com/company-beta/1086424/?pathWildcard=1086424>

compufirst.2

Loading...