Plugin - How can I run a task before Gradle project is linked? Follow
Answered
- Our company works in Gradle git repositories that don't have a gradle or gradlew file on a fresh checkout.
- Users are required to run an initialization script to pull a gradle wrapper and gradle-wrapper.properties file from a remote host before opening IDEA
- IDEA works with previously initialized wrapper, but fails if users forget to run the script as IDEA will use a wrapper from services.gradle.org that doesn't contain information the repository needs
In a plugin, I would like to make this a seamless process for users by running the initialization script that sets up gradlew before Gradle will attempt to initialize the module and link it to the project. I need to do the following:
- Run script just before Gradle links module to project
- Run script on project open for Gradle projects already linked
I feel I'm on the right track but can't really find the right way to go about it. I've looked at:
ProjectOpenProcessor, GradleTaskManagerExtension, GradleProjectResolverExtension
Please sign in to leave a comment.
Please take a look at ExternalSystemExecutionAware.prepareExecution
Parameter `task: ExternalSystemTask` allows you to check if it is a reload (sync) or just Gradle task launch.
Parameter `taskNotificationListener: ExternalSystemTaskNotificationListener` allows to send events (text) to sync/build output toolwindow