Questions on V2 plugin descriptor

Hi Joachim!

  1. All the features mentioned in this doc about v2 (modular) plugins except required-if-available should work in 2025.2. required-if-available attribute is supported starting with 2025.3.
  2. Actually, it wasn’t necessary to use package attribute even in 2025.2. If you don’t specify it and register content modules in plugin.xml via content tag, they should work.
  3. It isn’t necessary to keep modules in separate packages even in 2025.2. If you don’t specify package attribute, the IDE will assume that the module classes are located in a separate JAR (lib/modules/<module.name>.jar). Recent versions of IntelliJ Platform Gradle Plugin should pack content modules to such JARs automatically.
  4. You can merge content of X.jar into the module JAR, or create a special plugin module which contains an empty module XML descriptor and class-files from X.jar. I don’t think we have a built-in support for such packaging in IntelliJ Platform Gradle Plugin, though, feel free to file an issue about that. You may also create an empty plugin content module, register it with loading=embedded. In that case if X.jar is put directly in lib directory of the plugin, it’ll be included in the classpath of that module. So you can add a dependency on that module to other modules (even optional), and they will be able to use classes from X.jar.
1 Like