IntelliJ and Alpakka

I’m having difficulty loading in the current master branch into intelliJ. My IntelliJ is completely up to date. Are there known issues with Alpakka and IntelliJ nowadays? It used to work for me.

Could you post the actual error messages?

Here’s IntelliJ’s log in relation to loading the project. HTH.

2018-08-19 11:23:45,924 [59510503]   INFO - System.util.ExternalSystemUtil - External project [/Users/huntc/Projects/hacking/alpakka] resolution task executed in 107933 ms. 
2018-08-19 11:23:48,235 [59512814]   WARN - .AbstractDependencyDataService - Can't import dependencies [LibraryDependencyData: dependency=library ch.qos.logback:logback-classic:1.2.3:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library ch.qos.logback:logback-core:1.2.3:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.novocode:junit-interface:0.11:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe:config:1.3.2:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe:ssl-config-core_2.12:0.2.3:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-actor_2.12:2.5.13:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-protobuf_2.12:2.5.13:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-slf4j_2.12:2.5.13:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-stream-testkit_2.12:2.5.13:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-stream_2.12:2.5.13:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-testkit_2.12:2.5.13:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library junit:junit:4.12:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.hamcrest:hamcrest-core:1.3:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.reactivestreams:reactive-streams:1.0.2:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang:scala-library:2.12.6:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang:scala-reflect:2.12.6:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-java8-compat_2.12:0.8.0:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-parser-combinators_2.12:1.1.0:jar|scope=Compile|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-xml_2.12:1.0.6:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-sbt:test-interface:1.0:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scalactic:scalactic_2.12:3.0.5:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scalatest:scalatest_2.12:3.0.5:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.slf4j:slf4j-api:1.7.25:jar|scope=Test|exported=false|owner=alpakka [file:/Users/huntc/Projects/hacking/alpakka/]]. Reason: target module (ModuleData: alpakka [file:/Users/huntc/Projects/hacking/alpakka/]) is not found at the ide and can't be imported 
2018-08-19 11:23:52,780 [59517359]  ERROR - intellij.openapi.progress.Task - null 
java.lang.AssertionError
	at com.intellij.openapi.externalSystem.service.project.manage.AbstractDependencyDataService.lambda$computeOrphanData$0(AbstractDependencyDataService.java:105)
	at com.intellij.openapi.externalSystem.service.project.manage.AbstractDependencyDataService.removeData(AbstractDependencyDataService.java:158)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.doImportData(ProjectDataManagerImpl.java:305)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:166)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:244)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:251)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$MyMultiExternalProjectRefreshCallback.onSuccess(ExternalSystemUtil.java:1202)
	at com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback.onSuccess(ExternalProjectRefreshCallback.java:41)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:584)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.java:674)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:736)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
	at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:395)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
2018-08-19 11:23:52,798 [59517377]  ERROR - intellij.openapi.progress.Task - IntelliJ IDEA 2018.2.1  Build #IC-182.3911.36 
2018-08-19 11:23:52,798 [59517377]  ERROR - intellij.openapi.progress.Task - JDK: 1.8.0_152-release 
2018-08-19 11:23:52,798 [59517377]  ERROR - intellij.openapi.progress.Task - VM: OpenJDK 64-Bit Server VM 
2018-08-19 11:23:52,798 [59517377]  ERROR - intellij.openapi.progress.Task - Vendor: JetBrains s.r.o 
2018-08-19 11:23:52,799 [59517378]  ERROR - intellij.openapi.progress.Task - OS: Mac OS X 
2018-08-19 11:23:52,799 [59517378]  ERROR - intellij.openapi.progress.Task - Last Action: ExternalSystem.RefreshAllProjects 

Seems to be a Scala project. Have you tried building it with sbt at the command line? If that works you might try deleting all IntelliJ project files, then reimporting the project.

I’ve tried deleting .idea files, project files etc.

This problem is a recent thing. I used to be able to work with Alpakka in IntelliJ, but not so anymore. I’m wondering if others have the same issue.

No issue (ultimate last version).

Hmm. This has started to work for me again - I really don’t know why. Apologies for the noise.

One year later and I remain plagued with Alpakka IntelliJ compatibility. The old problem seem to be in relation to a dependency missing. The current problem may be from the perspective that Mozilla’s rhino and others can’t be resolved (despite existing in Maven Central).

Here’s the full log:


2019-07-28 14:57:40,266 [2437076]   INFO - System.util.ExternalSystemUtil - External project [/Users/huntc/Projects/hacking/alpakka] resolution task executed in 47917 ms. 
2019-07-28 14:57:40,774 [2437584]   INFO - ge.ExternalProjectsDataStorage - Save external projects data in 80 ms 
2019-07-28 14:57:40,800 [2437610]   INFO - mponents.impl.stores.StoreUtil - saveProjectsAndApp took 237 ms 
2019-07-28 14:57:40,913 [2437723]   WARN - .AbstractDependencyDataService - Can't import dependencies [LibraryDependencyData: dependency=library ch.qos.logback:logback-classic:1.2.3:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library ch.qos.logback:logback-core:1.2.3:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.lightbend.akka:paradox-theme-akka:0.20:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.novocode:junit-interface:0.11:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe:config:1.3.3:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe:ssl-config-core_2.12:0.3.7:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-actor_2.12:2.5.23:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-protobuf_2.12:2.5.23:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-slf4j_2.12:2.5.23:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-stream-testkit_2.12:2.5.23:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-stream_2.12:2.5.23:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library com.typesafe.akka:akka-testkit_2.12:2.5.23:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library junit:junit:4.12:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.hamcrest:hamcrest-core:1.3:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.reactivestreams:reactive-streams:1.0.2:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang:scala-library:2.12.7:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang:scala-reflect:2.12.7:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-java8-compat_2.12:0.8.0:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-parser-combinators_2.12:1.1.1:jar|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-lang.modules:scala-xml_2.12:1.2.0:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scala-sbt:test-interface:1.0:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scalactic:scalactic_2.12:3.0.8:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.scalatest:scalatest_2.12:3.0.8:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library org.slf4j:slf4j-api:1.7.25:jar|scope=Test|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/], LibraryDependencyData: dependency=library unmanaged-sources-and-docs|scope=Compile|exported=false|owner=docs [file:/Users/huntc/Projects/hacking/alpakka/]]. Reason: target module (ModuleData: docs [file:/Users/huntc/Projects/hacking/alpakka/]) is not found at the ide and can't be imported 
2019-07-28 14:57:40,985 [2437795]  ERROR - intellij.openapi.progress.Task - null 
java.lang.AssertionError
	at com.intellij.openapi.externalSystem.service.project.manage.AbstractDependencyDataService.lambda$computeOrphanData$0(AbstractDependencyDataService.java:85)
	at com.intellij.openapi.externalSystem.service.project.manage.AbstractDependencyDataService.removeData(AbstractDependencyDataService.java:138)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.doImportData(ProjectDataManagerImpl.java:297)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:153)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:239)
	at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl.importData(ProjectDataManagerImpl.java:246)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$MyMultiExternalProjectRefreshCallback.onSuccess(ExternalSystemUtil.java:1137)
	at com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback.onSuccess(ExternalProjectRefreshCallback.java:40)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.executeImpl(ExternalSystemUtil.java:552)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.lambda$execute$0(ExternalSystemUtil.java:388)
	at com.intellij.openapi.project.DumbServiceImpl.suspendIndexingAndRun(DumbServiceImpl.java:149)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:388)
	at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.java:642)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:894)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
	at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:408)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	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:834)
2019-07-28 14:57:40,986 [2437796]  ERROR - intellij.openapi.progress.Task - IntelliJ IDEA 2019.2  Build #IC-192.5728.98 
2019-07-28 14:57:40,986 [2437796]  ERROR - intellij.openapi.progress.Task - JDK: 11.0.3; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 
2019-07-28 14:57:40,986 [2437796]  ERROR - intellij.openapi.progress.Task - OS: Mac OS X 
2019-07-28 14:57:40,986 [2437796]  ERROR - intellij.openapi.progress.Task - Last Action: ExternalSystem.RefreshAllProjects 

Any further thinking?

Interestingly, if I comment out the docs project from build.sbt then all is well…

…and then, if I uncomment it back i.e. restore build.sbt and re-import then all is well.

There’s something about that doc project…

Lately I have been using BSP support in IntelliJ to import alpakka and I like that experience a bit more.

I needed to add the sbt-bloop plugin to ~/.sbt/1.0/plugins/build.sbt:

addSbtPlugin("ch.epfl.scala"       % "sbt-bloop"            % "1.3.2")

Then tell the sbt-bloop plugin in ~/.sbt/1.0/global.sbt to export sources as well:

bloopExportJarClassifiers in Global := Some(Set("sources"))

After that I run bloopInstall in sbt console with Alpakka loaded. When all of the descriptions are generated, I import Alpakka as a new project and select bsp.

I like this approach, because I can control various different aspects of Alpakka build before exporting BSP definition, for example I can export BSP definition with Akka 2.6 as a dependency, and then import that into IntelliJ.

Also importing from BSP definition in IntelliJ takes only a couple of seconds. Most of the time after import is taken by indexing.

Thanks Martynas. I will take a look at BSP.

However, Alpakka is, so far, my only troublesome project out of the box with IntelliJ. Bring problematic in this regard may put others off from contributing.

Cheers

C