[devkit] IJPL-210540 add warning about classloader configuration change and potential NCDFE

GitOrigin-RevId: 8d6f5a78aebb6d3b4f8d9df3a95a0783a479270b
This commit is contained in:
Vadim Salavatov
2025-10-17 11:52:47 +00:00
committed by intellij-monorepo-bot
parent 29913028bb
commit 6de56b4375
2 changed files with 11 additions and 4 deletions
@@ -41,7 +41,16 @@ elements:
renderContexts: [doc_provider]
deprecatedSince: "2026.1"
deprecationNote: |
Proper module packaging should be used instead of this attribute: content modules should be packed into their own jars under `lib/modules/`.
Package attribute usage is discouraged and deprecated, content modules should be packaged into separate jars under `lib/modules/`.
IntelliJ Monorepository build system does it automatically when the attribute is not specified.
IntelliJ Platform Gradle Plugin allows doing that with `pluginModule` declaration since version 2.7.0.
Note that after this attribute is removed, the classloader configuration will change.
While the class files of the module were packed into the main plugin's jar,
other modules could've accidentally accessed them. After they are separated into a module jar,
such accesses will start to throw `NoClassDefFoundError`.
Double-check that compile-time dependencies between modules match the module dependencies in module XMLs.
See [_Plugin Model_](https://youtrack.jetbrains.com/articles/IJPL-A-31){internal} for more details.
requirement:
required: no
@@ -234,9 +234,7 @@ inspections.plugin.xml.change.until.build.name=Change ''until-build'' to ''{0}''
inspections.plugin.xml.change.until.build.family.name=Correct 'until-build' attribute
inspections.plugin.xml.deprecated=Deprecated
inspections.plugin.xml.deprecated.implementation.detail=Implementation plugins are no longer supported: use either a regular plugin or implement a product module
inspections.plugin.xml.deprecated.package.attribute=Package attribute usage is discouraged and deprecated, content modules should be packaged into separate jars under `lib/modules/`. \
IntelliJ Monorepository build system does it automatically when the attribute is not specified. \
IntelliJ Platform Gradle Plugin allows doing that with `pluginModule` declaration since version 2.7.0.
inspections.plugin.xml.deprecated.package.attribute=Package attribute usage is discouraged and deprecated, content modules should be packaged into separate jars under `lib/modules/`. Refer to attribute documentation for details.
inspections.plugin.xml.add.version.tag=Add <version>
inspections.plugin.xml.add.vendor.tag=Add <vendor>
inspections.plugin.xml.module.descriptor.at.least.one.dependency=At least one <module> entry must be defined