# ./gradlew buildEdge fails despite successful EdgeApp-\> Export in Eclipse

**URL:** <https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512>\
**Category:** Software-Development\
**Created:** [May 20, 2021, 9:06am UTC](https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512 "2021-05-20T09:06:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bernd](https://community.openems.io/letter_avatar_proxy/v4/letter/b/977dab/32.png) [@Bernd](https://community.openems.io/u/Bernd)\
**Post date:** [May 20, 2021, 9:06am UTC](https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512/1 "2021-05-20T09:06:28Z")

</div>

Hi all,  
I started recently to work with OpenEMS. From within Eclipse I can run and export a functional edge app. I am now trying to get thegradle build to work form commandline with  
./gradlew buildEdge  
executed directly in the working copy. It fails with:

> Task :io.openems.wrapper:jar FAILED  
> warning: io.openems.wrapper.fastexcel: The JAR is empty: The instructions for the JAR named io.openems.wrapper.fastexcel did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.influxdb-java: The JAR is empty: The instructions for the JAR named io.openems.wrapper.influxdb-java did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment/require bundle cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: The JAR is empty: The instructions for the JAR named io.openems.wrapper.paho-mqttv5 did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.sdnotify: The JAR is empty: The instructions for the JAR named io.openems.wrapper.sdnotify did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.opczip: The JAR is empty: The instructions for the JAR named io.openems.wrapper.opczip did not cause any content to be included, this is likely wrong  
> error : io.openems.wrapper.fastexcel: Exception: java.util.ConcurrentModificationException  
> at java.base/java.util.TreeMap.callMappingFunctionWithCheck(TreeMap.java:742)  
> at java.base/java.util.TreeMap.computeIfAbsent(TreeMap.java:596)  
> at aQute.bnd.osgi.Jar.putResource(Jar.java:337)  
> at aQute.bnd.osgi.Jar.buildFromZip(Jar.java:266)  
> at aQute.bnd.osgi.Jar.(Jar.java:131)  
> at aQute.bnd.osgi.Jar.(Jar.java:198)  
> at aQute.bnd.build.ProjectBuilder.addClasspath(ProjectBuilder.java:136)  
> at aQute.bnd.build.ProjectBuilder.init(ProjectBuilder.java:112)  
> at aQute.bnd.osgi.Builder.build(Builder.java:95)  
> at aQute.bnd.osgi.Builder.builds(Builder.java:1421)  
> at aQute.bnd.build.ProjectBuilder.builds(ProjectBuilder.java:722)  
> at aQute.bnd.build.Project.buildLocal(Project.java:1877)  
> at aQute.bnd.build.Project.build(Project.java:1689)  
> at aQute.bnd.build.Project.build(Project.java:2398)  
> at aQute.bnd.build.Project$build$17.call(Unknown Source)  
> at

[truncated]

> ```
> at java.base/java.lang.Thread.run(Thread.java:831)
> 
> ```
> 
> error : io.openems.wrapper.opczip: Unexpected ProjectBuilder init, error null  
> error : io.openems.wrapper.opczip: Can not find JAR file ‘opczip-1.2.0.jar’  
> FAILURE: Build failed with an exception.
> 
> - What went wrong:  
> Execution failed for task ‘:io.openems.wrapper:jar’.  
> io.openems.wrapper has errors, 21 errors were reported
> 
> - Try:  
> Run with --stacktrace option to get the stack trace. Run with --info or --debug option to \>get more log output. Run with --scan to get full insights.
> 
> - Get more help at [https://help.gradle.org](https://help.gradle.org)
> 
> BUILD FAILED in 4s  
> 1 actionable task: 1 executed  
> \<-------------\> 0% WAITING  
> IDLE

What could be the issue with that? Thanks for any insights!

EDIT: I just discovered that the the project io.openems.wrapper is the only one that uses sub-bundles (checkbox “enable sub-bundles” in io.openems.wrapper/bnd.bnd, option -sub: \*.bnd in the bnd.bnd source). Do sub-bundles work with gradlew? Maybe this is the source of the error.

Best,  
Bernd

---

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [May 20, 2021, 12:53pm UTC](https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512/2 "2021-05-20T12:53:11Z")

</div>

Hi Bernd,

you need to execute `./gradlew build` first.

This is what we do in our continuous integration build on GitHub Actions:

> <https://github.com/OpenEMS/openems/blob/develop/.github/workflows/build.yml#L43-L44>

---

<div class="post-metadata">

**Author:** ![Bernd](https://community.openems.io/letter_avatar_proxy/v4/letter/b/977dab/32.png) [@Bernd](https://community.openems.io/u/Bernd)\
**Post date:** [May 20, 2021, 1:03pm UTC](https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512/3 "2021-05-20T13:03:00Z")

</div>

Hi Stefan, thanks for your support, much appreciated! I ran  
./gradlew clean  
./gradlew build  
the last invocation failed with

> Task :io.openems.wrapper:jar FAILED  
> warning: io.openems.wrapper.fastexcel: The JAR is empty: The instructions for the JAR named io.openems.wrapper.fastexcel did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.influxdb-java: The JAR is empty: The instructions for the JAR named io.openems.wrapper.influxdb-java did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment/require bundle cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: The JAR is empty: The instructions for the JAR named io.openems.wrapper.paho-mqttv5 did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.sdnotify: The JAR is empty: The instructions for the JAR named io.openems.wrapper.sdnotify did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.opczip: The JAR is empty: The instructions for the JAR named io.openems.wrapper.opczip did not cause any content to be included, this is likely wrong  
> error : io.openems.wrapper.fastexcel: Exception: java.util.ConcurrentModificationException  
> at java.base/java.util.TreeMap.callMappingFunctionWithCheck(TreeMap.java:742)  
> at java.base/java.util.TreeMap.computeIfAbsent(TreeMap.java:596)  
> at aQute.bnd.osgi.Jar.putResource(Jar.java:337)  
> at aQute.bnd.osgi.Jar.buildFromZip(Jar.java:266)  
> at aQute.bnd.osgi.Jar.(Jar.java:131)  
> at aQute.bnd.osgi.Jar.(Jar.java:198)  
> at aQute.bnd.build.ProjectBuilder.addClasspath(ProjectBuilder.java:136)  
> at aQute.bnd.build.ProjectBuilder.init(ProjectBuilder.java:112)  
> at aQute.bnd.osgi.Builder.build(Builder.java:95)  
> at aQute.bnd.osgi.Builder.builds(Builder.java:1421)  
> at aQute.bnd.build.ProjectBuilder.builds(ProjectBuilder.java:722)  
> at aQute.bnd.build.Project.buildLocal(Project.java:1877)  
> at aQute.bnd.build.Project.build(Project.java:1689)  
> at aQute.bnd.build.Project.build(Project.java:2398)  
> at aQute.bnd.build.Project$build$17.call(Unknown Source)  
> at aQute.bnd.gradle.BndPlugin$\_apply\_closure1$\_closure12$\_closure59.doCall(BndPlugin.groovy:275)  
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)  
> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
> at java.base/java.lang.reflect.Method.invoke(Method.java:567)  
> at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)  
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)  
> at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)  
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)  
> at groovy.lang.Closure.call(Closure.java:412)  
> at groovy.lang.Closure.call(Closure.java:428)  
> at org.gradle.api.internal.AbstractTask$ClosureTaskAction.doExecute(AbstractTask.java:698)  
> at org.gradle.api.internal.AbstractTask$ClosureTaskAction.lambda$execute$0(AbstractTask.java:685)  
> at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication.reapply(DefaultUserCodeApplicationContext.java:86)  
> at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:685)  
> at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:660)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:498)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)  
> at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:483)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:466)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:105)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:270)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:248)  
> at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:83)  
> at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37)  
> at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)  
> at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)  
> at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)  
> at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:47)  
> at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37)  
> at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)  
> at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)  
> at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50)  
> at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)  
> at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)  
> at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)  
> at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)  
> at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)  
> at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)  
> at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54)  
> at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)  
> at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)  
> at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)  
> at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)  
> at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)  
> at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)  
> at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)  
> at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)  
> at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)  
> at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)  
> at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)  
> at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)  
> at java.base/java.util.Optional.map(Optional.java:260)  
> at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)  
> at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)  
> at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:84)  
> at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:41)  
> at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)  
> at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)  
> at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)  
> at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)  
> at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:78)  
> at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:49)  
> at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:105)  
> at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)  
> at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)  
> at java.base/java.util.Optional.orElseGet(Optional.java:364)  
> at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)  
> at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)  
> at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)  
> at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)  
> at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)  
> at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:283)  
> at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)  
> at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)  
> at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)  
> at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)  
> at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:49)  
> at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)  
> at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)  
> at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)  
> at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)  
> at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)  
> at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)  
> at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)  
> at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)  
> at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)  
> at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)  
> at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)  
> at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
> at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)  
> at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)  
> at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)  
> at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)  
> at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)  
> at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)  
> at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)  
> at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)  
> at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)  
> at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)  
> at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)  
> at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)  
> at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)  
> at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)  
> at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)  
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)  
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)  
> at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)  
> at java.base/java.lang.Thread.run(Thread.java:831)  
> \<  
> error : io.openems.wrapper.fastexcel: Unexpected ProjectBuilder init, error null  
> error : io.openems.wrapper.fastexcel: Can not find JAR file ‘fastexcel-0.12.9.jar’  
> error : io.openems.wrapper.influxdb-java: Exception: java.util.ConcurrentModificationException  
> at java.base/java.util.TreeMap.callMappingFunctionWithCheck(TreeMap.java:742)  
> at java.base/java.util.TreeMap.computeIfAbsent(TreeMap.java:596)  
> at aQute.bnd.osgi.Jar.putResource(Jar.java:337)  
> at aQute.bnd.osgi.Jar.buildFromZip(Jar.java:266)

etc.

Apparently it didn’t help. somehow the jar files are not built or not found for all the bnd sub-bundles in io.openems.wrapper

I there something else I can do to allow for better diagnosis? Provide any logs etc.?

---

<div class="post-metadata">

**Author:** ![Bernd](https://community.openems.io/letter_avatar_proxy/v4/letter/b/977dab/32.png) [@Bernd](https://community.openems.io/u/Bernd)\
**Post date:** [May 20, 2021, 3:16pm UTC](https://community.openems.io/t/gradlew-buildedge-fails-despite-successful-edgeapp-export-in-eclipse/512/4 "2021-05-20T15:16:08Z")

</div>

After much try and error I tested with a fresh master checkout:  
git clone [GitHub - OpenEMS/openems: OpenEMS - Open Source Energy Management System](https://github.com/OpenEMS/openems.git) openems-master  
cd openems-master/  
./gradlew build

with the same errors:

> Downloading [https://services.gradle.org/distributions/gradle-7.0.2-bin.zip](https://services.gradle.org/distributions/gradle-7.0.2-bin.zip)  
> …10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
> 
> Welcome to Gradle 7.0.2!
> 
> Here are the highlights of this release:
> 
> - File system watching enabled by default
> - Support for running with and building Java 16 projects
> - Native support for Apple Silicon processors
> - Dependency catalog feature preview
> 
> For more details see [Link]
> 
> Starting a Gradle Daemon (subsequent builds will be faster)
> 
> Task :io.openems.wrapper:jar FAILED  
> warning: io.openems.wrapper.fastexcel: The JAR is empty: The instructions for the JAR named io.openems.wrapper.fastexcel did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.influxdb-java: The JAR is empty: The instructions for the JAR named io.openems.wrapper.influxdb-java did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment/require bundle cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: Host org.eclipse.paho.mqttv5.client= for this fragment cannot be found on the classpath  
> warning: io.openems.wrapper.paho-mqttv5: The JAR is empty: The instructions for the JAR named io.openems.wrapper.paho-mqttv5 did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.sdnotify: The JAR is empty: The instructions for the JAR named io.openems.wrapper.sdnotify did not cause any content to be included, this is likely wrong  
> warning: io.openems.wrapper.opczip: The JAR is empty: The instructions for the JAR named io.openems.wrapper.opczip did not cause any content to be included, this is likely wrong  
> error : io.openems.wrapper.fastexcel: Exception: java.util.ConcurrentModificationException

etc.
