Closed U1F984 closed 3 years ago
Same issue here. Projects using the GWT plugin can no longer be imported in IDEA with Gradle 7.
The problem comes from the use of project.afterEvaluate
in GwtIdeaPlugin
.
It's likely to be related to this Gradle 7 upgrade instructions entry : Calling Project.afterEvaluate() after project evaluation is now an error
According to GwtIdeaPlugin
javadoc, this piece of code tries to "improves the IntelliJ IDEA integration by adding the gwt dependencies to the project", but:
gwt
and gwtSdk
configurations seems to be correctly added as "provided" to the IDEA module dependencies, without the need for GwtIdeaPlugin to do anything.Seems to me that this piece of code could be removed, but I'm unsure of the consequences on older/other gradle and IDEA versions.
I upgraded this project and its examples to Gradle 7.0. The build seems ok: https://github.com/jiakuan/gwt-gradle-plugin/actions/runs/815225999
I also upgraded a couple of my other projects that are using gwt-gradle-plugin:1.1.11
and idea
plugin. They are all built successfully without problems.
I'm wondering whether it's something we need to fix in the gwt-gradle-plugin
code?
Running gradle build
works fine with Gradle 7 and the GWT plugin.
The error happens when importing the project to IDEA.
It can be reproduced on the examples
sub-project:
cd gwt-gradle-plugin/examples && ./gradlew wrapper --gradle-version 7.0
gwt-gradle-plugin/examples/build.gradle
Failed to apply plugin class 'org.gradle.plugins.ide.idea.IdeaPlugin'.
Cannot run Project.afterEvaluate(Action) when the project is already evaluated.
Importing to IDEA does not required explicitely adding gradle idea
plugin to build.gradle
.
IDEA implicitly adds and uses the idea
plugin under-the-hood somehow.
I confirm that I do not reproduce this issue when manually adding the idea
plugin to the examples
project build.gradle
.
This may be related to how IDEA adds the idea
plugin on import.
This would be in line with the reason why project.afterEvaluate
should be avoided in plugin code stated in that gradle issue (makes build success dependent on plugin execution order): https://github.com/gradle/gradle/issues/1135#issuecomment-533531035
Perhaps we could delete the ‘idea’ related code from the plug-in all together as IDEA may already have good support on grade now?
On Thu, 6 May 2021 at 5:11 pm, Aurelien Minvielle @.***> wrote:
Running gradle build works fine with Gradle 7 and the GWT plugin.
The error happens when importing the project to IDEA.
It can be reproduced on the examples sub-project:
- Upgrade to gradle 7: cd gwt-gradle-plugin/examples && ./gradlew wrapper --gradle-version 7.0
- Open IDEA
- Add new project gwt-gradle-plugin/examples/build.gradle
- Import fails with the following error:
Failed to apply plugin class 'org.gradle.plugins.ide.idea.IdeaPlugin'. Cannot run Project.afterEvaluate(Action) when the project is already evaluated.
Importing to IDEA does not required adding gradle idea plugin to build.gradle. IDEA implicitly adds and uses the idea plugin under-the-hood somehow.
I confirm that I do not reproduce this issue when manually adding the idea plugin to the examples project build.gradle. This may be related to how IDEA adds the idea plugin on import.
This would be in line with the reason why project.afterEvaluate should be avoided in plugin code stated in that gradle issue (makes build success dependent on plugin execution order): gradle/gradle#1135 (comment) https://github.com/gradle/gradle/issues/1135#issuecomment-533531035
— You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/jiakuan/gwt-gradle-plugin/issues/44#issuecomment-833366936, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAECF5FI7KP3IAFQKGGZ5XLTMJMKJANCNFSM44EWOWIQ .
I think so, yes.
The Intellij IDEA related code has been removed and a new version 1.1.12
of this plugin has been released.
plugins {
id "org.wisepersist.gwt" version "1.1.12"
}
Please try and see if it works.
Please feel free to reopen this ticket if there are still any issues.
1.1.12 works fine for me, thanks for the quick release @jiakuan 👍
Trying to use the plugin (version 1.1.11) with Gradle 7.0 results in the following failure: