compileWidgets failed for jmix 1.22 and Charts plugin

Hi all

After upgrading to jmix 1.22 I was not able to compile the project anymore.
Cause = “java.lang.ClassNotFoundException: io.jmix.gradle.ClassPathCommandLine”

My settings are:
IntelliJ IDEA 2022.1 (Community Edition)

  • Build #IC-221.5080.210, built on April 12, 2022
  • Runtime version: 11.0.14.1+1-b2043.25 amd64

Java

  • openjdk-17.0.2 (Oracle)

I struggled around with various settings with previous JMIX versions before I could reproduce the condition, which leads to the error described above. As soon as I added the Chart marketplace plugin, I am not able to compile anymore.

Unfortunately removing the Chart plugin from the marketplace does not solve the problem. I had to delete the project and create a new one over and over.

Can anybody give me a hint which combination of JMIX version and Java SDK is stable at the moment AND enables working with the Marketplace plugins?

thx a lot and best regards

Michael

Hello!

Do you add Charts before upgrading to 1.2.2? Could you provide detailed steps to reproduce the issue? Do you have other installed add-ons (pivot, reports, etc)? Framework is tested on JDK 8, 11 and 17 so it should be ok.

Also, try to delete gradle cache directory.

hello Roman, thx for your reply and hints.

I have tried it in a lot of combinations of JDKs and JMIX Versions. The problem as described startet after updating to the latest Intellj Version 2022.1 (Community Edition). The tries were always following the same path which started by creating a new JMIX project. It made no difference in which sequence I added Charts. Even adding it manually and deleting the grade cache did not made a change.

After adding the Chart plugin I receive an IDE internal error from which I uploaded the errorlog as txt-file.

thx for you having a look at it.

ide internal errors.txt (11.3 KB)

Thank you for the Studio stack trace! But I guess it is not related with the gradle plugin problem.

Unfortunately, I cannot reproduce the issue. It seems the problem exists only for Windows OS.

The compileWidget task has a property: shortClassPath. You can set it to false in order to disable using ClassPathCommandLine:

compileWidgets {
    shortClassPath = false
    ...
}

However it can lead to the error: “Error 206 path too long” (though I cannot reproduce it on Windows 10). You can avoid by the following ways:

  1. Move your project to the folder with short path from the disk root, e.g. C:\proj\.
  2. Move and rename Gradle user home directory to the shortest possible name

Dear Roman, thx a lot! Obviously the setting " shortClassPath = false" worked out.

best regards!

Michael