WROVER build issue with Tool SDK Docker

Hi MicroEJ team!

I’m trying to use MicroEJ Buildkit Docker image to build my MicroEJ modules: GitHub - MicroEJ/Tool-SDK-Docker: Docker Images for various MicroEJ SDK versions.
I used the latest version available in this repository (5.5.0) and built an image with the provided Dockerfile.
However when I try to build the WROVER platform (from here: GitHub - MicroEJ/Platform-Espressif-ESP-WROVER-KIT-V4.1: MicroEJ Platform for Espressif ESP-WROVER-KIT V4.1), I have the following error:

     [java] microej/platform:
     [java] BUILD FAILED
     [java] /project/build/module/module-platform/eclipseantrunner.ant:37: The following error occurred while executing this line:
     [java] /home/microej/.eclipse/com.is2t.microej.mpp.product.product_21.11_1473617060_linux_gtk_x86_64/configuration/org.eclipse.osgi/28/0/.cp/resources/microejgenerator/MicroEJGenerator.xml:51: The following error occurred while executing this line:
     [java] /project/target~/scripts/MicroEJFramework.xml:55: Unexpected IO error (/ESP32WROVER-Platform-GNUv52b96_xtensa-esp32-psram-1.8.4/build/release.properties (No such file or directory))
     [java]     at com.is2t.microej.workbench.pro.new_.NewJPFTaskIntern.execute(NewJPFTaskIntern.java:108)
     [java]     at com.is2t.microej.workbench.pro.NewJavaPlatformTask.execute(NewJavaPlatformTask.java:126)
     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
     [java]     at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
     [java]     at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
     [java]     at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:32)
     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
     [java]     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
     [java]     at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
     [java]     at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:36)
     [java]     at org.eclipse.ant.internal.core.ant.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:32)
     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
     [java]     at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:437)
     [java]     at com.is2t.microej.workbench.pro.ExportJavaPlatformConfigurationTask.execute(ExportJavaPlatformConfigurationTask.java:150)
     [java]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
     [java]     at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
     [java]     at org.apache.tools.ant.Task.perform(Task.java:350)
     [java]     at org.apache.tools.ant.Target.execute(Target.java:449)
     [java]     at org.apache.tools.ant.Target.performTasks(Target.java:470)
     [java]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
     [java]     at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
     [java]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
     [java]     at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:34)
     [java]     at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
     [java]     at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:712)
     [java]     at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:573)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.eclipse.ant.core.AntRunner.run(AntRunner.java:514)
     [java]     at org.eclipse.ant.core.AntRunner.start(AntRunner.java:611)
     [java]     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
     [java]     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
     [java]     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
     [java]     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
     [java]     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     [java]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     [java]     at java.lang.reflect.Method.invoke(Method.java:498)
     [java]     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
     [java]     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
     [java]     at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
     [java]     at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
     [java] Total time: 3 seconds
     [java] platform/creation:
     [java] An error has occurred. See the log file
     [java] /project/target~/workspace782753488~/.metadata/.log.

BUILD FAILED
Found an error when building Platform
* Where

File : /project/build/module/module-platform.ant
Line : 201 column : 24

* Problem Report:

The following error occurred while executing this line:
/opt/buildKit/microej-build-repository/com/is2t/easyant/plugins/eclipse-antRunner/1.1.1/eclipse-antRunner-1.1.1.ant:73: Java returned: 13


* Recommendation...

Run easyant with -verbose or -debug option to get more details.

Total time: 21 seconds

The command line I ran is this:

docker run --rm -v $(pwd)/ESP32-WROVER-Xtensa-FreeRTOS-configuration/:/project -w /project microej/sdk:5.5.0 mmm build

I suspect something might be wrong with the docker image because I don’t have any issue if I build this project via the Eclipse SDK.

I’m working with WSL 2 on Windows 10.

Regards,

Philip

Hi Philip,

First, thanks for using MicroEJ and to use our Docker images :slight_smile:

When building a MicroEJ platform, the build output directory is generally located at the project root next to the project *-configuration and *-bsp.

Here you are bind-mounting only the configuration project in your container with -v $(pwd)/ESP32-WROVER-Xtensa-FreeRTOS-configuration:/project so the build cannot access its output directory.

I suggest you bind-mount the entire project and move to the ESP32-WROVER-Xtensa-FreeRTOS-configuration project with

docker run --rm -v $(pwd):/project -w /project/ESP32-WROVER-Xtensa-FreeRTOS-configuration microej/sdk:5.5.0 mmm build

Small tip : calling mmm do the same as mmm build but shortened :wink:

Best Regards,
Simon

Thanks Simon! That worked!

Best regards,

Philip