How to register service MavenWorkspaceSettingsComponent for plugin?
Hello, DevKit support Team!
I tried to create unit tests for our developing plugin which analyze PSI elements of other imported maven-project.
My goal is to get all super classes of some class,
but in order to implement it we need to get PsiClass objects from dependencies enumerated in pom.xml.
I investigated some examples from IntelliJ Idea Community source code, such as, MavenUtilTest and others.
All the test classes inherited from MavenTestCase.
The method MavenTestCase.setUp() contains line
MavenWorkspaceSettingsComponent.getInstance(myProject).loadState(new MavenWorkspaceSettings());
where MavenWorkspaceSettingsComponent.getInstance(myProject) return service MavenWorkspaceSettingsComponent,
But in my plugin project MavenWorkspaceSettingsComponent.getInstance(myProject) returns null.
What is problem with what?
How to register service MavenWorkspaceSettingsComponent ?
Please sign in to leave a comment.
You must declare a dependency on the Maven plugin in your plugin.xml, see https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_dependencies.html
What particular steps I need to do?
Ok, I did next steps:
- Added maven.jar to SDK Platform Settings
- Added <depends>org.jetbrains.idea.maven</depends> in plugin.xml
- Changed
intellij { plugins 'java' }
to
intellij { setPlugins("java", "maven") }
but MavenWorkspaceSettingsComponent.getInstance(myProject) returns null again.
Why are you mixing Gradle setup and Devkit SDK setup?
You must choose one approach of adding Maven plugin to your classpath.