Lombok-intellij-plugin: IDEA 2020.2 EAP incompatible

Created on 28 May 2020  ยท  13Comments  ยท  Source: mplushnikov/lombok-intellij-plugin

Short description

The plug-in is shown as incompatible

Expected behavior

_Is there a specific expected behavior?_

Version information

  • IDEA Version: 2020.2 EAP

Caused because plugin build contains
<idea-version since-build="201.5985" until-build="201.*"/>

I have tried the workaround:

๐Ÿ’ฅ The latest IntelliJ IDEA version (2020.1) contains a BUG ๐Ÿž for several plugins (including plugin for Lombok) were shown as incompatible with the updated version of the IDE. ๐Ÿ’ฅ
You can find the issue with a detailed explanation here: https://youtrack.jetbrains.com/issue/IDEA-237113.

But then the version 0.9.* is installed. If the until-build="201.* is removed it works.

โ“ Is is possible for your needs to use updateSinceUntilBuild false or patchPluginXml.untilBuild(null) to disable the until generation for latest IDEA version (2020.*)

enhancement

Most helpful comment

Thanks, it seems after uninstalling Lombok plugin, restarting IDEA, and installing Lombok back, it started to work again :)

All 13 comments

Short description

The plug-in is shown as incompatible

Expected behavior

_Is there a specific expected behavior?_

Version information

  • IDEA Version: 2020.2 EAP

Caused because plugin build contains

<idea-version since-build="201.5985" until-build="201.*"/>

I have tried the workaround:

๐Ÿ’ฅ The latest IntelliJ IDEA version (2020.1) contains a BUG ๐Ÿž for several plugins (including plugin for Lombok) were shown as incompatible with the updated version of the IDE. ๐Ÿ’ฅ
You can find the issue with a detailed explanation here: https://youtrack.jetbrains.com/issue/IDEA-237113.

But then the version 0.9.* is installed. If the until-build="201.* is removed it works.

โ“ Is is possible for your needs to use updateSinceUntilBuild false or patchPluginXml.untilBuild(null) to disable the until generation for latest IDEA version (2020.*)

Yes you are correct.
Using updateSinceUntilBuild false can solve this problem and I see no cost in doing so.
I learned this trick from alibaba/p3c
Seems it is a "common secret" or something.
I really do not understand why jetbrains not make this in its doc for beginners.
https://github.com/mplushnikov/lombok-intellij-plugin/pull/810

It is documents for Gradle setup in SDK Documentation
https://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system/gradle_guide.html#patching-the-plugin-configuration-file

It is documents for Gradle setup in SDK Documentation
https://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system/gradle_guide.html#patching-the-plugin-configuration-file

thanks. my bad then.

No Problem.
so much doc to overlook it ๐Ÿ˜‰

Thank you, @MCMicS, for providing the workaround. Works perfectly ๐Ÿ‘

But notice it can only run at the latest version, but not compile at this version.
If you compile it using the latest snapshot, you will get some error like this:

9:38:40 PM: Executing task 'buildPlugin'...

Starting Gradle Daemon...
Gradle Daemon started in 7 s 102 ms

> Configure project :
IdeaVersion is : LATEST-EAP-SNAPSHOT
ArtifactVersion is : 0.30-EAP
Building for IntelliJ version: LATEST-EAP-SNAPSHOT
Generating Parser for GrammerKit: 2019.3
Generating Lexer for JFlexRelease: 1.7.0-1

> Task :generateLombokConfigParser FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
1 actionable task: 1 executed
Exception in thread "main" java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2ObjectOpenHashMap
    at com.intellij.openapi.extensions.PluginId.<clinit>(PluginId.java:18)
    at com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.doRegisterExtensionPoint(ExtensionsAreaImpl.java:176)
    at com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.registerExtensionPoint(ExtensionsAreaImpl.java:161)
    at com.intellij.core.CoreApplicationEnvironment.registerExtensionPoint(CoreApplicationEnvironment.java:257)
    at com.intellij.core.CoreApplicationEnvironment.registerExtensionPoint(CoreApplicationEnvironment.java:244)
    at com.intellij.core.CoreApplicationEnvironment.registerApplicationExtensionPoint(CoreApplicationEnvironment.java:262)
    at com.intellij.core.CoreApplicationEnvironment.<init>(CoreApplicationEnvironment.java:97)
    at com.intellij.core.CoreApplicationEnvironment.<init>(CoreApplicationEnvironment.java:74)
    at org.intellij.grammar.LightPsi$MyParsing.<init>(LightPsi.java:166)
    at org.intellij.grammar.LightPsi.<clinit>(LightPsi.java:65)
    at org.intellij.grammar.Main.main(Main.java:49)
Caused by: java.lang.ClassNotFoundException: it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 11 more

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':generateLombokConfigParser'.
> Process 'command 'C:\jdk8u252-b09\bin\java.exe'' finished with non-zero exit value 1

* 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

BUILD FAILED in 15s
9:38:56 PM: Task execution finished 'buildPlugin'.

But at least we can use the 2020.1 to compile it and get it running at the latest version.
That's already very helpful.

maybe the grammar should update too (like in PR #808)

I guess the indention was to build only for oneversion.
so a new Build with 2020.2 or LAtest-EAP should be bumped.

@XenoAmess ,
Thanks a lot for #810
I was thinking of reverting to old idea version because of lombok plugin was not available.
But, I just gave this change a go,
I was able to build it with the above mentioned change for the plugin.
However since I was using openjdk11 I had to remove the flag CMSPermGenSweepingEnabled from the gradle.properties to get it create the jar successfully.
and finally I placed the new Jar in my plugin folder /my-path/IDEA-U/ch-0/202.4357.23.plugins/lombok-plugin/lib That seems to be working, I can see the compiler is not showing the errors now.

Just added new Build for IntelliJ 2020.2 EAP: https://plugins.jetbrains.com/plugin/6317-lombok/update/87712

Hi there, I'm still having the incompatibility issue:

19:49   Plugin Error
            Plugin "Lombok" is incompatible (until build 201.SNAPSHOT < IU-202.6397.59).

Using IDEA 2020.2, build:
IntelliJ IDEA 2020.2 (Ultimate Edition) Build #IU-202.6397.59, built on July 22, 2020

With Lombok plugin version 0.30: 0.30-2020.1

Thanks, it seems after uninstalling Lombok plugin, restarting IDEA, and installing Lombok back, it started to work again :)

Was this page helpful?
0 / 5 - 0 ratings