birt
birt copied to clipboard
Build Failure with GraalVM 8
When using latest GraalVM 8 to build, it fails with:
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42:26 min
[INFO] Finished at: 2021-03-15T20:47:30+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (javadoc) on project org.eclipse.birt.chart.doc.isv: An Ant BuildException has occured: The following error occurred while executing this line:
[ERROR] /home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/BuildChartISVDoc.xml:251: javax.script.ScriptException: org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (getProperty) on org.apache.tools.ant.Project@2bc5b8a failed due to: Unknown identifier: getProperty
[ERROR] around Ant part ...<ant antfile="/home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/BuildChartISVDoc.xml" target="Javadoc">... @ 5:116 in /home/cheeseng/git/birt/docs/org.eclipse.birt.chart.doc.isv/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[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/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf org.eclipse.birt:org.eclipse.birt.chart.doc.isv
Fyi my graalvm version:
cheeseng@cheeseng-RAVEN:~$ java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b07)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.0.2 (build 25.282-b07-jvmci-21.0-b06, mixed mode)
This is being caused by using tools.jar classes that are apparently not shipped by graalvm.
I am currently preparing the build to run also on Java11 which gives me similar issues. I have resolved some of them.
Please try to build against my branch prepare_for_java11
to see if you get any further.
Ping!
@wimjongman I tried to build your prepare_for_java11 with graalvm jdk8 but unable to:
Caused by: java.lang.UnsupportedClassVersionError: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:468)
at java.net.URLClassLoader.access$100 (URLClassLoader.java:74)
at java.net.URLClassLoader$1.run (URLClassLoader.java:369)
at java.net.URLClassLoader$1.run (URLClassLoader.java:363)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:362)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf (ClassRealm.java:425)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:42)
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)
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:139)
at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:46)
at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision (BeanScheduler.java:230)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:120)
at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get (SingletonScope.java:168)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get (InternalFactoryToProviderAdapter.java:39)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
at java.util.AbstractMap.get (AbstractMap.java:187)
at org.apache.maven.repository.legacy.LegacyRepositorySystem.getLayout (LegacyRepositorySystem.java:861)
at org.apache.maven.repository.legacy.LegacyRepositorySystem.buildArtifactRepository (LegacyRepositorySystem.java:807)
at org.apache.maven.project.DefaultProjectBuildingHelper.createArtifactRepositories (DefaultProjectBuildingHelper.java:95)
at org.apache.maven.project.DefaultModelBuildingListener.buildExtensionsAssembled (DefaultModelBuildingListener.java:120)
at org.apache.maven.model.building.ModelBuildingEventCatapult$1.fire (ModelBuildingEventCatapult.java:44)
at org.apache.maven.model.building.DefaultModelBuilder.fireEvent (DefaultModelBuilder.java:1368)
at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:460)
at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:440)
at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:618)
at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:633)
at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:387)
at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414)
at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405)
at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
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.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Invalid artifact repository: Unable to provision, see the following errors:
1) Error in custom provider, java.lang.TypeNotPresentException: Type org.eclipse.tycho.core.p2.P2ArtifactRepositoryLayout not present
at ClassRealm[extension>org.eclipse.tycho:tycho-maven-plugin:2.2.0, parent: sun.misc.Launcher$AppClassLoader@7852e922] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
while locating org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout annotated with @com.google.inject.name.Named(value=p2)
1 error @
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project org.eclipse.birt:birt-report-all-in-one:4.9.0-SNAPSHOT (/home/cheeseng/git/birt/build/birt-packages/birt-report-all-in-one/pom.xml) has 1 error
[ERROR] Invalid artifact repository: Unable to provision, see the following errors:
[ERROR]
[ERROR] 1) Error in custom provider, java.lang.TypeNotPresentException: Type org.eclipse.tycho.core.p2.P2ArtifactRepositoryLayout not present
[ERROR] at ClassRealm[extension>org.eclipse.tycho:tycho-maven-plugin:2.2.0, parent: sun.misc.Launcher$AppClassLoader@7852e922] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
[ERROR] while locating org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout annotated with @com.google.inject.name.Named(value=p2)
[ERROR]
[ERROR] 1 error: org/eclipse/tycho/core/p2/P2ArtifactRepositoryLayout has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[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/ProjectBuildingException
It seems to require jdk11, would you still plan to keep the jdk8 build working?
Cheers.
@wimjongman By the way I built master branch in another mac laptop with adoptopenjdk 8 and it builds fine.
Do we want to keep this open? Seems it can be closed even if @cheeseng solution is not the ideal, it is a work around for now.
The issue is that it is not building with GraalVM. This has not been resolved.
JDK8 is not supported