diff --git a/.idea/modules.xml b/.idea/modules.xml
index 2cb9f7d67d11..4f1dadc935cd 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -550,6 +550,7 @@
+
diff --git a/BUILD.bazel b/BUILD.bazel
index 50f7c9468038..dff1b84abf7e 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -149,6 +149,7 @@ jvm_library(
"//plugins/properties:properties-backend",
"//java/ide-resources",
"//java/ide-customization",
+ "//java/ide-customization/training",
"//resources:java-resources",
"//resources-en:java-resources-en",
"//spellchecker",
diff --git a/build/bazel-generated-file-list.txt b/build/bazel-generated-file-list.txt
index dd89e1f5cd8f..39b170736d52 100644
--- a/build/bazel-generated-file-list.txt
+++ b/build/bazel-generated-file-list.txt
@@ -296,6 +296,7 @@ java/execution/impl
java/execution/openapi
java/execution/shared
java/ide-customization
+java/ide-customization/training
java/ide-resources
java/idea-ui
java/java-analysis-api
diff --git a/intellij.idea.community.main.iml b/intellij.idea.community.main.iml
index dd900df137ad..58e5d6a3779e 100644
--- a/intellij.idea.community.main.iml
+++ b/intellij.idea.community.main.iml
@@ -46,6 +46,7 @@
+
diff --git a/java/ide-customization/BUILD.bazel b/java/ide-customization/BUILD.bazel
index 89d5e4ecbd9a..779471b4a3a6 100644
--- a/java/ide-customization/BUILD.bazel
+++ b/java/ide-customization/BUILD.bazel
@@ -17,9 +17,6 @@ jvm_library(
"//java/java-psi-api:psi",
"//platform/core-api:core",
"//platform/lang-api:lang",
- "//plugins/ide-features-trainer:featuresTrainer",
- "//platform/util:util-ui",
- "//java/java-features-trainer:featuresTrainer",
"//platform/platform-impl:ide-impl",
"//platform/lang-core",
],
diff --git a/java/ide-customization/intellij.java.ide.customization.iml b/java/ide-customization/intellij.java.ide.customization.iml
index ffb8c60da30e..d6ca27feb9ca 100644
--- a/java/ide-customization/intellij.java.ide.customization.iml
+++ b/java/ide-customization/intellij.java.ide.customization.iml
@@ -18,9 +18,6 @@
-
-
-
diff --git a/java/ide-customization/plugin-content.yaml b/java/ide-customization/plugin-content.yaml
index 9fcf41ebd72d..12d5b178ae1e 100644
--- a/java/ide-customization/plugin-content.yaml
+++ b/java/ide-customization/plugin-content.yaml
@@ -1,3 +1,6 @@
- name: lib/java-ide-customization.jar
modules:
- - name: intellij.java.ide.customization
\ No newline at end of file
+ - name: intellij.java.ide.customization
+- name: lib/modules/intellij.java.ide.customization.training.jar
+ contentModules:
+ - name: intellij.java.ide.customization.training
\ No newline at end of file
diff --git a/java/ide-customization/resources/META-INF/plugin.xml b/java/ide-customization/resources/META-INF/plugin.xml
index 1225a5b5b74d..662fd1dd4275 100644
--- a/java/ide-customization/resources/META-INF/plugin.xml
+++ b/java/ide-customization/resources/META-INF/plugin.xml
@@ -14,7 +14,7 @@
-
+
messages.ActionsBundle
diff --git a/java/ide-customization/training/BUILD.bazel b/java/ide-customization/training/BUILD.bazel
new file mode 100644
index 000000000000..1aafc62b3c22
--- /dev/null
+++ b/java/ide-customization/training/BUILD.bazel
@@ -0,0 +1,26 @@
+### auto-generated section `build intellij.java.ide.customization.training` start
+load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup")
+
+resourcegroup(
+ name = "training_resources",
+ srcs = glob(["resources/**/*"]),
+ strip_prefix = "resources"
+)
+
+jvm_library(
+ name = "training",
+ module_name = "intellij.java.ide.customization.training",
+ visibility = ["//visibility:public"],
+ srcs = glob(["src/**/*.kt", "src/**/*.java", "src/**/*.form"], allow_empty = True),
+ resources = [":training_resources"],
+ deps = [
+ "//java/java-features-trainer:featuresTrainer",
+ "//platform/util:util-ui",
+ "//platform/core-api:core",
+ "//platform/platform-api:ide",
+ "//plugins/ide-features-trainer:featuresTrainer",
+ "@lib//:kotlin-stdlib",
+ "@lib//:jetbrains-annotations",
+ ]
+)
+### auto-generated section `build intellij.java.ide.customization.training` end
\ No newline at end of file
diff --git a/java/ide-customization/training/intellij.java.ide.customization.training.iml b/java/ide-customization/training/intellij.java.ide.customization.training.iml
new file mode 100644
index 000000000000..ea60c3c62b56
--- /dev/null
+++ b/java/ide-customization/training/intellij.java.ide.customization.training.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java/ide-customization/resources/intellij.java.ide.customization.training.xml b/java/ide-customization/training/resources/intellij.java.ide.customization.training.xml
similarity index 67%
rename from java/ide-customization/resources/intellij.java.ide.customization.training.xml
rename to java/ide-customization/training/resources/intellij.java.ide.customization.training.xml
index c16c03bfa998..fd127fc1abd6 100644
--- a/java/ide-customization/resources/intellij.java.ide.customization.training.xml
+++ b/java/ide-customization/training/resources/intellij.java.ide.customization.training.xml
@@ -1,10 +1,10 @@
-
+
-
+
\ No newline at end of file
diff --git a/java/ide-customization/src/com/intellij/ide/customization/java/training/JavaOnboardingTourPromoter.kt b/java/ide-customization/training/src/JavaOnboardingTourPromoter.kt
similarity index 87%
rename from java/ide-customization/src/com/intellij/ide/customization/java/training/JavaOnboardingTourPromoter.kt
rename to java/ide-customization/training/src/JavaOnboardingTourPromoter.kt
index 9a83090d8e88..cc4ff5cad775 100644
--- a/java/ide-customization/src/com/intellij/ide/customization/java/training/JavaOnboardingTourPromoter.kt
+++ b/java/ide-customization/training/src/JavaOnboardingTourPromoter.kt
@@ -1,5 +1,5 @@
-// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.ide.customization.java.training
+// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.java.ide.customization.training
import com.intellij.java.ift.JavaLessonsBundle
import com.intellij.java.ift.javaLanguageId