java.lang.NoClassDefFoundError: com/intellij/ide/util/projectWizard/SourcePathsBuilder
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877)
at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:380)
at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:376)
at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:340)
at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:326)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at com.haskforce.HaskellModuleType.createModuleBuilder(HaskellModuleType.scala:21)
at com.haskforce.HaskellModuleType.createModuleBuilder(HaskellModuleType.scala:20)
at com.intellij.ide.util.projectWizard.ModuleBuilder.getAllBuilders(ModuleBuilder.java:64)
at com.intellij.ide.projectWizard.ProjectTypeStep.fillTemplatesMap(ProjectTypeStep.java:251)
% ./gradlew test
...
:compileScala
.../intellij-haskforce/src/com/haskforce/codeInsight/HaskellCompletionCacheLoader.scala:21: trait ProjectComponent in package components is deprecated: see corresponding Javadoc for more information.
class HaskellCompletionCacheLoader(project: Project) extends ProjectComponent {
^
/**
* @deprecated components are deprecated. If you register a class as a project component it will be loaded, its instance will be created and
* {@link #initComponent()} and {@link #projectOpened()} methods will be called for each project even if user doesn't use any feature of your
* plugin. Also plugins which declare project components don't support dynamic loading. Please see
* http://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_components.html for guidelines on migrating to other APIs.
*/
@Deprecated
public interface ProjectComponent extends BaseComponent {
To store the state of your plugin at the application or project level, use a Service and implement the PersistentStateComponent interface. See Persisting State of Components for details.
cache
field. It's fairly primitive - https://github.com/carymrobbins/intellij-haskforce/blob/idea-2020.1/src/com/haskforce/codeInsight/HaskellCompletionCacheLoader.scala
% ls -1 ~/.gradle/caches/modules-2/files-2.1/com.jetbrains.intellij.idea/ideaIC
193.5233-EAP-CANDIDATE-SNAPSHOT
2019.2.1
2019.3
2019.3.1
2020.1
LATEST-EAP-SNAPSHOT