ignatov/intellij-erlang

Importing simple project

Ivan-Igorevich opened this issue · 3 comments

Hello, first of all, thank you for your work.

I've created a simple erlang project and put it under VCS (everything works perfectly, thank you)
image

But when i've cloned this very same project on my other PC, it has opened as a Java project and Project structure wants me to choose the installed JDK version.
image

I didn't find any difference in generated (in .idea folder) meta information files, and the main *.iml file is under VCS.

Debian11
IDEA 2022.3.1CE
Plugin 0.11.1162

Upd: the same problem happens if you start a repository on one device, create files (and push them) on the other device, then pull them to the initial project. I guess, there's some kind of inner indexing happen.

Upd2: found a problem creating new Java project after working with plugin. Simple "Hello world" doesn't compile because of an exception (shown below). Disabling plugin fixes issue. After enabling plugin again the issue returns with the same exception.
image

Internal error (java.lang.UnsupportedClassVersionError): org/intellij/erlang/jps/model/JpsErlangModelSerializerExtension has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
java.lang.UnsupportedClassVersionError: org/intellij/erlang/jps/model/JpsErlangModelSerializerExtension has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1210)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1221)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1265)
	at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1300)
	at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1385)
	at com.intellij.util.containers.ContainerUtil.newArrayList(ContainerUtil.java:133)
	at org.jetbrains.jps.service.impl.JpsServiceManagerImpl$SingleClassLoaderPluginManager.loadExtensions(JpsServiceManagerImpl.java:113)
	at org.jetbrains.jps.service.impl.JpsServiceManagerImpl.loadExtensions(JpsServiceManagerImpl.java:105)
	at org.jetbrains.jps.service.impl.JpsServiceManagerImpl.getExtensions(JpsServiceManagerImpl.java:58)
	at org.jetbrains.jps.model.serialization.JpsModelSerializerExtension.getExtensions(JpsModelSerializerExtension.java:47)
	at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.getSdkPropertiesSerializer(JpsSdkTableSerializer.java:131)
	at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.loadSdk(JpsSdkTableSerializer.java:67)
	at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.loadSdks(JpsSdkTableSerializer.java:59)
	at org.jetbrains.jps.model.serialization.JpsGlobalLoader$SdkTableSerializer.loadExtension(JpsGlobalLoader.java:117)
	at org.jetbrains.jps.model.serialization.JpsGlobalLoader$SdkTableSerializer.loadExtension(JpsGlobalLoader.java:110)
	at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponents(JpsLoaderBase.java:45)
	at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalComponents(JpsGlobalLoader.java:73)
	at org.jetbrains.jps.model.serialization.JpsGlobalLoader.load(JpsGlobalLoader.java:63)
	at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalSettings(JpsGlobalLoader.java:45)
	at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:20)
	at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:34)
	at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:68)
	at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:347)
	at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:193)
	at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:211)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

Hello. Could you please share a sample project and tell IntelliJ version?

IDEA 2022.3.1CE
Plugin 0.11.1162

https://git.iovchinnikov.ru/ivan-igorevich/erlang-labs

if you can import it and run tests - show me how, please))

Index: src/rss_parse.erl
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/rss_parse.erl b/src/rss_parse.erl
--- a/src/rss_parse.erl	(revision f7f73cd26f4929832e71f2bf5f23458a6cebc60e)
+++ b/src/rss_parse.erl	(date 1683124378079)
@@ -1,7 +1,7 @@
 -module(rss_parse).
 
 -export([is_rss2_feed/1, get_feed_items/1, get_item_time/1, compare_feed_items/2]).
--include_lib("/usr/lib/erlang/lib/xmerl-1.3.26/include/xmerl.hrl"<).
+-include_lib("xmerl/include/xmerl.hrl").
 
 % В этой функции вызываем функцию `xmerl_scan:file/1`, которая возвращает парсер XML-документа. Затем используем `xmerl_xpath:string/2` для поиска элемента `<rss>` с атрибутом `version` равным "2.0". Если такой элемент найден, то функция возвращает true, иначе false.
 is_rss2_feed(Name)->
Index: erlang.iml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/erlang.iml b/erlang-labs.iml
rename from erlang.iml
rename to erlang-labs.iml
--- a/erlang.iml	(revision f7f73cd26f4929832e71f2bf5f23458a6cebc60e)
+++ b/erlang-labs.iml	(date 1683124210370)
@@ -11,7 +11,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
     </content>
-    <orderEntry type="jdk" jdkName="Erlang 25" jdkType="Erlang SDK" />
+    <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>
\ No newline at end of file
Index: src/rss_queue.erl
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/rss_queue.erl b/src/rss_queue.erl
--- a/src/rss_queue.erl	(revision f7f73cd26f4929832e71f2bf5f23458a6cebc60e)
+++ b/src/rss_queue.erl	(date 1683124437583)
@@ -2,8 +2,8 @@
 
 -compile(export_all).
 
--include("logging.hrl")
--include_lib("/usr/lib/erlang/lib/xmerl-1.3.26/include/xmerl.hrl")
+-include("logging.hrl").
+-include_lib("xmerl/include/xmerl.hrl").
 
 % The server implements the gen_server behavior.
 -behaviour(gen_server).

something like that may help a lot