SQLDelight bleeds IntelliJ dependencies onto buildscript class path
See original GitHub issueSQLDelight bundles certain IntelliJ classes as part of its gradle plugin. As Gradle does not use separate classloaders for each plugin, this causes them to appear on the classpath of the buildscript and in them being shared among all plugins. This in turn may result in conflicts with other plugins, which also use IntelliJ classes, since they might require a different IntelliJ SDK version.
However, even when the versions are compatible, for each ApplicationManager
class there can only be one CoreApplicationEnvironment
active at the same time (see e.g. #1912 for context). So if other plugins also need to initialize an application, this leads to hard to debug problems, since one might effectively deregister the services, extension points, etc. of the other.
Please consider relocating your bundled IntelliJ dependencies to a SQLDelight specific package (e.g. com.squareup.sqldelight.deps
) in order to avoid both of these problems.
Relevant section in the build file: https://github.com/cashapp/sqldelight/blob/544bccfd1302de5169ce03f75fbcc9c2e470b8fd/sqldelight-gradle-plugin/build.gradle#L43
Issue Analytics
- State:
- Created 3 years ago
- Reactions:1
- Comments:15 (2 by maintainers)
Top GitHub Comments
we’ve still gotta update to the intellij artifacts so that we dont bundle the jar in directly.
Should this be closed? This was marked as fixed in the 1.4.4 release notes