Need for help: Eclipse Neon
Dear Java Team,
I am trying to build a recent version of Eclipse.
Eclipse requires Tycho Maven Plugin to build, and I have packaged it
using suggestions from Fedora packagers:
https://mentors.debian.net/package/tycho
(currently, we don't use Fedora scripts to build Tycho, we just use
patches, maven, and maven-repo-helper)
Then, I have tried to build Eclipse.
I have uploaded my trials here:
https://anonscm.debian.org/cgit/pkg-java/eclipse.git/tree/debian?h=experimental
During the build, Tycho fails with tons of errors. They are attached.
Can anyone try to help me?
As a minor issue, Tycho requires a recent version of sat4j. I have
packaged it here:
https://mentors.debian.net/package/sat4j
I have already tried to contact the maintainer, however I didn't get any
feedback.
Regards.
Luca
luca@nbvercelli:/src/eclipse-experimental/eclipse-4.6.0$ ./debian/rules build
dh build --parallel --buildsystem=maven
dh_testdir -O--buildsystem=maven
dh_update_autotools_config -O--buildsystem=maven
debian/rules override_dh_auto_configure
make[1]: ingresso nella directory "/src/eclipse-experimental/eclipse-4.6.0"
dh_auto_configure -O--buildsystem=maven -- -Duser.home=/tmp
find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-compiler/*/*.jar’: File o directory non esistente
find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-compilers/*/*.jar’: File o directory non esistente
find: ‘/usr/share/maven-repo/org/codehaus/plexus/plexus-containers/*/*.jar’: File o directory non esistente
mh_patchpoms -peclipse --debian-build --keep-pom-version --maven-repo=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo
#Tycho requires write access here
rm -rf debian/maven-repo/org/eclipse/tycho/tycho-bundles-external/0.25.0
cp -r /usr/share/maven-repo/org/eclipse/tycho/tycho-bundles-external/0.25.0 debian/maven-repo/org/eclipse/tycho/tycho-bundles-external
make[1]: uscita dalla directory "/src/eclipse-experimental/eclipse-4.6.0"
debian/rules override_dh_auto_build
make[1]: ingresso nella directory "/src/eclipse-experimental/eclipse-4.6.0"
dh_auto_build -O--buildsystem=maven -- -Duser.home=/tmp package
/usr/lib/jvm/default-java/bin/java -noverify -cp /usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/lib/jvm/default-java/lib/tools.jar -Dmaven.home=/usr/share/maven -Dmaven.multiModuleProjectDirectory=/src/eclipse-experimental/eclipse-4.6.0 -Dclassworlds.conf=/etc/maven/m2-debian.conf org.codehaus.plexus.classworlds.launcher.Launcher -s/etc/maven/settings-debian.xml -Ddebian.dir=/src/eclipse-experimental/eclipse-4.6.0/debian -Dmaven.repo.local=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo -Duser.home=/tmp package -DskipTests -Dnotimestamp=true -Dlocale=en_US
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.swt:org.eclipse.swt.tests:eclipse-test-plugin:3.105.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 29, column 15
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.http.servlet.tests:eclipse-test-plugin:1.0.100-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 27, column 15
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.reconciler.product:eclipse-repository:4.6.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-p2-director-plugin is missing. @ line 25, column 12
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests:eclipse-test-plugin:1.6.100-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 32, column 12
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.discovery:eclipse-test-plugin:1.1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 21, column 15
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.equinox:org.eclipse.equinox.p2.tests.ui:eclipse-test-plugin:1.1.100-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.tycho:tycho-surefire-plugin is missing. @ line 34, column 12
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[WARNING] Error initializing: org.eclipse.tycho.p2.resolver.P2DependencyResolver@78c1372d
java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed.
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:312)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:286)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:280)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.initialize(P2DependencyResolver.java:428)
at org.eclipse.sisu.plexus.PlexusLifecycleManager.initialize(PlexusLifecycleManager.java:303)
at org.eclipse.sisu.plexus.PlexusLifecycleManager.activate(PlexusLifecycleManager.java:207)
at org.eclipse.sisu.bean.BeanScheduler$Pending.activate(BeanScheduler.java:156)
at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:185)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:74)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject(DefaultTychoResolver.java:95)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:90)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:266)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:188)
at org.debian.maven.Wrapper.main(Wrapper.java:89)
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:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.NullPointerException: A null service reference is not allowed.
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:617)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:307)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.doStart(DefaultEquinoxEmbedder.java:179)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.start(DefaultEquinoxEmbedder.java:67)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:310)
... 38 more
[ERROR] Internal error: java.lang.RuntimeException: Could not instantiate required component: com.google.inject.ProvisionException: Unable to provision, see the following errors:
[ERROR]
[ERROR] 1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2).
[ERROR] Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed.
[ERROR] while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2)
[ERROR]
[ERROR] 1 error
[ERROR] role: org.eclipse.tycho.core.DependencyResolver
[ERROR] roleHint: p2
[ERROR] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: Could not instantiate required component
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:121)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:188)
at org.debian.maven.Wrapper.main(Wrapper.java:89)
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:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.RuntimeException: Could not instantiate required component
at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:76)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.setupProject(DefaultTychoResolver.java:95)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:90)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:266)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
... 13 more
Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2).
Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed.
while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2)
1 error
role: org.eclipse.tycho.core.DependencyResolver
roleHint: p2
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:267)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
at org.eclipse.tycho.core.resolver.DefaultDependencyResolverFactory.lookupDependencyResolver(DefaultDependencyResolverFactory.java:74)
... 18 more
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error notifying ProvisionListener org.eclipse.sisu.bean.BeanScheduler$Activator of org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2).
Reason: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed.
while locating org.eclipse.tycho.core.DependencyResolver annotated with @com.google.inject.name.Named(value=p2)
1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
... 20 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException: A null service reference is not allowed.
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:312)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:286)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.getService(DefaultEquinoxEmbedder.java:280)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.initialize(P2DependencyResolver.java:428)
at org.eclipse.sisu.plexus.PlexusLifecycleManager.initialize(PlexusLifecycleManager.java:303)
at org.eclipse.sisu.plexus.PlexusLifecycleManager.activate(PlexusLifecycleManager.java:207)
at org.eclipse.sisu.bean.BeanScheduler$Pending.activate(BeanScheduler.java:156)
at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:185)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
... 24 more
Caused by: java.lang.NullPointerException: A null service reference is not allowed.
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:617)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:307)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.doStart(DefaultEquinoxEmbedder.java:179)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.start(DefaultEquinoxEmbedder.java:67)
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted(DefaultEquinoxEmbedder.java:310)
... 38 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
Exception in thread "Equinox Shutdown Hook" java.lang.NoClassDefFoundError: org/eclipse/osgi/storagemanager/ManagedOutputStream
at org.eclipse.osgi.storagemanager.StorageManager.getOutputStream(StorageManager.java:793)
at org.eclipse.osgi.storage.Storage.save0(Storage.java:1054)
at org.eclipse.osgi.storage.Storage.save(Storage.java:1026)
at org.eclipse.osgi.internal.framework.StorageSaver$StorageSaverTask.run(StorageSaver.java:28)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.eclipse.osgi.storagemanager.ManagedOutputStream
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 5 more
dh_auto_build: /usr/lib/jvm/default-java/bin/java -noverify -cp /usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/lib/jvm/default-java/lib/tools.jar -Dmaven.home=/usr/share/maven -Dmaven.multiModuleProjectDirectory=/src/eclipse-experimental/eclipse-4.6.0 -Dclassworlds.conf=/etc/maven/m2-debian.conf org.codehaus.plexus.classworlds.launcher.Launcher -s/etc/maven/settings-debian.xml -Ddebian.dir=/src/eclipse-experimental/eclipse-4.6.0/debian -Dmaven.repo.local=/src/eclipse-experimental/eclipse-4.6.0/debian/maven-repo -Duser.home=/tmp package -DskipTests -Dnotimestamp=true -Dlocale=en_US returned exit code 1
debian/rules:23: set di istruzioni per l'obiettivo "override_dh_auto_build" non riuscito
make[1]: *** [override_dh_auto_build] Errore 2
make[1]: uscita dalla directory "/src/eclipse-experimental/eclipse-4.6.0"
debian/rules:14: set di istruzioni per l'obiettivo "build" non riuscito
make: *** [build] Errore 2
Reply to: