Giter VIP home page Giter VIP logo

sbt-multi-jvm's People

Contributors

bantonsson avatar cessationoftime avatar jboner avatar jsuereth avatar ktoso avatar msfrank avatar patriknw avatar pvlugter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sbt-multi-jvm's Issues

support ide testing

need some equivalent of

@org.junit.runner.RunWith(classOf[org.scalatest.junit.JUnitRunner])

to allow running multi-jvm tests in eclipse and idea

Multiple compilation processes run without parallelExecution in Global := false

In sbt-0.13 (and sbt-multi-jvm 0.3.8), we should set parallelExecution flag to false in the Global context:

parallelExcecution in Global := false

Without this setting, it looks like multiple compilation tasks run simultaneously and it causes an exeception described as below:

java.lang.RuntimeException: Could not create directory target/classes.bak
    at scala.sys.package$.error(package.scala:27)
    at sbt.IO$.createDirectory(IO.scala:155)
    at sbt.inc.ClassfileManager$$anonfun$transactional$1$$anon$2.<init>(ClassfileManager.scala:37)
    at sbt.inc.ClassfileManager$$anonfun$transactional$1.apply(ClassfileManager.scala:33)
    at sbt.inc.ClassfileManager$$anonfun$transactional$1.apply(ClassfileManager.scala:33)

Supporting SBT 0.13.x

Hi,

I'm using Play 2.x + Akka 2.2.1's clustering solution and discovered that it doesn't work well as the output from the Tests in SBT 0.13 differs from SBT 0.12 and like to raise the possibility of support for SBT 0.13 moving forward.

Add IntegrationTest config class path

I have several integration test helpers in src/it/scala that I would like to use in multijvm tests as well.

Is there a way to do this? If not can one be added?

Command line limit

On some operating systems the command line limit can be reached with the long classpath argument passed to scalatest. Support running from a temporary script file to work around this.

Multi-jvm and sbt-assembly conflict

A project that uses an sbt-assembly plugin version 0.9.0 will conflict with multi-jvm internal version of 0.8.5 with the following exception:

java.lang.NoSuchMethodError: sbtassembly.Plugin$AssemblyKeys$.outputPath()Lsbt/SettingKey;
at com.typesafe.sbt.SbtMultiJvm$.internalMultiJvmSettings(SbtMultiJvm.scala:110)
at com.typesafe.sbt.SbtMultiJvm$.multiJvmSettings(SbtMultiJvm.scala:78)
at BuildSettings$.multiJvmSettings(Build.scala:16)
at BuildSettings$.(Build.scala:30)
at BuildSettings$.(Build.scala)
at RedisFailover$$anonfun$redisFailover$1.apply(Build.scala:71)
at RedisFailover$$anonfun$redisFailover$1.apply(Build.scala:71)
at RedisFailover$$anonfun$redisFailover$8.apply(Build.scala:71)
at RedisFailover$$anonfun$redisFailover$8.apply(Build.scala:71)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$$anonfun$settings$1.apply(Project.scala:60)
at sbt.Project$$anonfun$settings$1.apply(Project.scala:60)
at sbt.Project$$anonfun$settings$8.apply(Project.scala:60)
at sbt.Project$$anonfun$settings$8.apply(Project.scala:60)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$class.copy$default$6(Project.scala:37)
at sbt.Project$$anon$1.copy$default$6(Project.scala:154)
at sbt.Project$$anonfun$configs$4.apply(Project.scala:59)
at sbt.Project$$anonfun$configs$4.apply(Project.scala:59)
at sbt.Project$$anonfun$configs$8.apply(Project.scala:59)
at sbt.Project$$anonfun$configs$8.apply(Project.scala:59)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$class.copy$default$6(Project.scala:37)
at sbt.Project$$anon$1.copy$default$6(Project.scala:154)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$17.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$17.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$21.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$21.apply(Load.scala:370)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$$anonfun$resolveBuild$4.apply(Project.scala:52)
at sbt.Project$$anonfun$resolveBuild$4.apply(Project.scala:52)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$class.resolve(Project.scala:45)
at sbt.Project$$anon$1.resolve(Project.scala:154)
at sbt.Load$$anonfun$18.apply(Load.scala:383)
at sbt.Load$$anonfun$18.apply(Load.scala:383)
at scala.collection.immutable.MapLike$$anon$2$$anonfun$foreach$3.apply(MapLike.scala:109)
at scala.collection.immutable.MapLike$$anon$2$$anonfun$foreach$3.apply(MapLike.scala:109)
at scala.collection.immutable.Map$Map1.foreach(Map.scala:119)
at scala.collection.immutable.MapLike$$anon$2.foreach(MapLike.scala:109)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:251)
at scala.collection.immutable.MapLike$$anon$2.filter(MapLike.scala:108)
at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:203)
at sbt.Project$$anonfun$configs$8.apply(Project.scala:59)
at sbt.Project$$anonfun$configs$8.apply(Project.scala:59)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$class.copy$default$6(Project.scala:37)
at sbt.Project$$anon$1.copy$default$6(Project.scala:154)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$17.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$17.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$21.apply(Load.scala:370)
at sbt.Load$$anonfun$resolveBase$1$$anonfun$apply$21.apply(Load.scala:370)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$$anonfun$resolveBuild$4.apply(Project.scala:52)
at sbt.Project$$anonfun$resolveBuild$4.apply(Project.scala:52)
at sbt.Project$ProjectDef.settings(Project.scala:145)
at sbt.Project$class.resolve(Project.scala:45)
at sbt.Project$$anon$1.resolve(Project.scala:154)
at sbt.Load$$anonfun$18.apply(Load.scala:383)
at sbt.Load$$anonfun$18.apply(Load.scala:383)
at scala.collection.immutable.MapLike$$anon$2$$anonfun$foreach$3.apply(MapLike.scala:109)
at scala.collection.immutable.MapLike$$anon$2$$anonfun$foreach$3.apply(MapLike.scala:109)
at scala.collection.immutable.Map$Map1.foreach(Map.scala:119)
at scala.collection.immutable.MapLike$$anon$2.foreach(MapLike.scala:109)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:251)
at scala.collection.immutable.MapLike$$anon$2.filter(MapLike.scala:108)
at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:203)
at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:53)
at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:50)
at sbt.Using.apply(Using.scala:25)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:50)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:33)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:17)
at sbt.MainLoop$.runLogged(MainLoop.scala:13)
at sbt.xMain.run(Main.scala:26)
at xsbt.boot.Launch$.run(Launch.scala:55)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
at xsbt.boot.Launch$.launch(Launch.scala:69)
at xsbt.boot.Launch$.apply(Launch.scala:16)
at xsbt.boot.Boot$.runImpl(Boot.scala:31)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
at SbtJansiLaunch.main(SbtJansiLaunch.java:4)
[error] java.lang.NoSuchMethodError: sbtassembly.Plugin$AssemblyKeys$.outputPath()Lsbt/SettingKey;

Allow customization of nested configuration of the sbt-assembly plugin

While upgrading to a newer version of a dependency, we ran in to the problem that the multijvm plugin uses the sbt-assembly plugin to produce a test jar and that assembly plugin throws an error dealing with merging files.

This is the error we got:

[error] (rebb-multijvm-test/multi-jvm:assembly) deduplicate: different file contents found in the following:
[error] /Users/age/.ivy2/cache/io.netty/netty/bundles/netty-3.8.0.Final.jar:META-INF/maven/io.netty/netty/pom.properties
[error] /Users/age/.ivy2/cache/com.datastax.cassandra/cassandra-driver-core/bundles/cassandra-driver-core-2.1.4.jar:META-INF/maven/io.netty/netty/pom.properties
[error] (rebb-shopper/multi-jvm:assembly) deduplicate: different file contents found in the following:
[error] /Users/age/.ivy2/cache/com.datastax.cassandra/cassandra-driver-core/bundles/cassandra-driver-core-2.1.4.jar:META-INF/maven/io.netty/netty/pom.properties
[error] /Users/age/.ivy2/cache/io.netty/netty/bundles/netty-3.8.0.Final.jar:META-INF/maven/io.netty/netty/pom.properties

The problem is that there is no way to override the merge strategies used internally by the multijvm plugin. The only options we had left was to not use that new version of our dependency or to fork the multijvm plugin.

Nested assembly config should be exposed for customization along with the other multijvm keys so that users can solve these issues.

Something gets not closed properly after `multi-jvm:run`

To reproduce, clone https://github.com/hseeberger/demo-akka, start sbt 0.12.4 and execute:

multi-jvm:run name.heikoseeberger.demoakka.remoting.Ping

This will succeed. Then wait a couple of seconds, then hit ENTER in the sbt session:

> Exception in thread "Thread-1" java.io.IOException: Stream closed
    at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:434)
    at java.io.OutputStream.write(OutputStream.java:116)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at com.typesafe.sbt.multijvm.JvmIO$.read$1(Jvm.scala:125)
    at com.typesafe.sbt.multijvm.JvmIO$.transfer(Jvm.scala:129)
    at com.typesafe.sbt.multijvm.JvmIO$.connectSystemIn(Jvm.scala:113)
    at com.typesafe.sbt.multijvm.JvmIO$$anonfun$input$1.apply(Jvm.scala:111)
    at com.typesafe.sbt.multijvm.JvmIO$$anonfun$input$1.apply(Jvm.scala:111)
    at sbt.SimpleProcessBuilder$$anonfun$run$1.apply$mcV$sp(ProcessImpl.scala:390)
    at sbt.Spawn$$anon$3.run(ProcessImpl.scala:20)

Requires sbt version < 0.13.0 current?

I tried configuring the plugin with sbt 0.13.0 / scala 2.10.3 / plugin v 0.3.8 and run into an issue when attempting to run both all (multi-node-test) and an individual tests WRT merge strategy when it triggers multi-jvm:assembly (?)

I used the setup noted in http://doc.akka.io/docs/akka/snapshot/dev/multi-jvm-testing.html#multi-jvm-testing

[trace] Stack trace suppressed: run last multi-jvm:assembly for the full output.
error deduplicate: different file contents found in the following:
[error] /.ivy2/cache/org.eclipse.jetty/jetty-webapp/jars/jetty-webapp-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-xml/jars/jetty-xml-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-util/jars/jetty-util-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-servlet/jars/jetty-servlet-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-security/jars/jetty-security-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-server/jars/jetty-server-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-3.0.0.v201112011016.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-continuation/jars/jetty-continuation-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-http/jars/jetty-http-8.1.10.v20130312.jar:about.html
[error] /.ivy2/cache/org.eclipse.jetty/jetty-io/jars/jetty-io-8.1.10.v20130312.jar:about.html
[error] Total time: 141 s, completed Nov 8, 2013 12:09:32 PM
s

I tried overriding the merge strategy with no joy. Is it me or just not yet working with 0.13.0?

Thanks!

Allow multiple MultiNodeSpec tests to run in parallel on the same machine

sbt-multi-jvm sets some parameters to help akka multi-node-testing (http://doc.akka.io/docs/akka/current/dev/multi-node-testing.html).

In particular, however, it does not set multinode.server-port. This means you cannot have 2 sbt processes running multi-node tests on the same machine, as they'll compete for port 4711.

This is of course especially bad on CI machines.

Could we somehow make this port configurable, to allow for example choosing a random one from a range? Or am I missing something entirely?

Please upgrade dependency on sbt assembly plugin

Our project is currently unable to upgrade to the latest version of the sbt-assembly plugin (0.12.0) because this plugin depends on an incompatibly old version (0.8.5). This will lead to the following exception when starting SBT:

java.lang.NoClassDefFoundError: sbtassembly/Plugin$

It would be great if this conflicting dependency would be removed or worked around so this plugin will not block projects from using the latest version of the sbt-assembly plugin.

sbt version: 0.13.7
java version: 1.8.0_25
Complete stack trace:

java.lang.NoClassDefFoundError: sbtassembly/Plugin$
  at com.typesafe.sbt.SbtMultiJvm$.internalMultiJvmSettings(SbtMultiJvm.scala:78)
  at com.typesafe.sbt.SbtMultiJvm$.multiJvmSettings$lzycompute(SbtMultiJvm.scala:76)
  at com.typesafe.sbt.SbtMultiJvm$.multiJvmSettings(SbtMultiJvm.scala:76)
  at Cluster$.clusterSettings$lzycompute(Cluster.scala:7)
  at Cluster$.clusterSettings(Cluster.scala:7)
  at Build$.rebbShopper$lzycompute(Build.scala:212)
  at Build$.rebbShopper(Build.scala:203)
  at Build$.rebbWebsite$lzycompute(Build.scala:287)
  at Build$.rebbWebsite(Build.scala:281)
  at Build$.rebbMultiJvmTest$lzycompute(Build.scala:257)
  at Build$.rebbMultiJvmTest(Build.scala:253)
  at Build$.root$lzycompute(Build.scala:42)
  at Build$.root(Build.scala:31)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at sbt.ReflectUtilities$$anonfun$allValsC$1$$anonfun$apply$2.apply(ReflectUtilities.scala:45)
  at sbt.ReflectUtilities$$anonfun$allValsC$1$$anonfun$apply$2.apply(ReflectUtilities.scala:44)
  at scala.Option$WithFilter.foreach(Option.scala:208)
  at sbt.ReflectUtilities$$anonfun$allValsC$1.apply(ReflectUtilities.scala:44)
  at sbt.ReflectUtilities$$anonfun$allValsC$1.apply(ReflectUtilities.scala:42)
  at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
  at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
  at sbt.ReflectUtilities$.allValsC(ReflectUtilities.scala:42)
  at sbt.ReflectUtilities$.allVals(ReflectUtilities.scala:61)
  at sbt.Build$class.projects(Build.scala:13)
  at Build$.projects(Build.scala:10)
  at sbt.Build$class.projectDefinitions(Build.scala:12)
  at Build$.projectDefinitions(Build.scala:10)
  at sbt.Load$.sbt$Load$$projectsFromBuild(Load.scala:496)
  at sbt.Load$$anonfun$27.apply(Load.scala:436)
  at sbt.Load$$anonfun$27.apply(Load.scala:436)
  at scala.collection.immutable.Stream.flatMap(Stream.scala:442)
  at sbt.Load$.loadUnit(Load.scala:436)
  at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:281)
  at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:281)
  at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:91)
  at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:90)
  at sbt.BuildLoader.apply(BuildLoader.scala:140)
  at sbt.Load$.loadAll(Load.scala:334)
  at sbt.Load$.loadURI(Load.scala:289)
  at sbt.Load$.load(Load.scala:285)
  at sbt.Load$.load(Load.scala:276)
  at sbt.Load$.apply(Load.scala:130)
  at sbt.Load$.defaultLoad(Load.scala:36)
  at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
  at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
  at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
  at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
  at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
  at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
  at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
  at sbt.Command$.process(Command.scala:92)
  at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
  at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
  at sbt.State$$anon$1.process(State.scala:184)
  at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
  at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
  at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
  at sbt.MainLoop$.next(MainLoop.scala:98)
  at sbt.MainLoop$.run(MainLoop.scala:91)
  at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
  at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
  at sbt.Using.apply(Using.scala:24)
  at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
  at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
  at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
  at sbt.MainLoop$.runLogged(MainLoop.scala:24)
  at sbt.StandardMain$.runManaged(Main.scala:53)
  at sbt.xMain.run(Main.scala:28)
  at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
  at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
  at xsbt.boot.Launch$.run(Launch.scala:109)
  at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
  at xsbt.boot.Launch$.launch(Launch.scala:117)
  at xsbt.boot.Launch$.apply(Launch.scala:18)
  at xsbt.boot.Boot$.runImpl(Boot.scala:41)
  at xsbt.boot.Boot$.main(Boot.scala:17)
  at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.lang.ClassNotFoundException: sbtassembly.Plugin$
  at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at com.typesafe.sbt.SbtMultiJvm$.internalMultiJvmSettings(SbtMultiJvm.scala:78)
  at com.typesafe.sbt.SbtMultiJvm$.multiJvmSettings$lzycompute(SbtMultiJvm.scala:76)
  at com.typesafe.sbt.SbtMultiJvm$.multiJvmSettings(SbtMultiJvm.scala:76)
  at Cluster$.clusterSettings$lzycompute(Cluster.scala:7)
  at Cluster$.clusterSettings(Cluster.scala:7)
  at Build$.rebbShopper$lzycompute(Build.scala:212)
  at Build$.rebbShopper(Build.scala:203)
  at Build$.rebbWebsite$lzycompute(Build.scala:287)
  at Build$.rebbWebsite(Build.scala:281)
  at Build$.rebbMultiJvmTest$lzycompute(Build.scala:257)
  at Build$.rebbMultiJvmTest(Build.scala:253)
  at Build$.root$lzycompute(Build.scala:42)
  at Build$.root(Build.scala:31)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:483)
  at sbt.ReflectUtilities$$anonfun$allValsC$1$$anonfun$apply$2.apply(ReflectUtilities.scala:45)
  at sbt.ReflectUtilities$$anonfun$allValsC$1$$anonfun$apply$2.apply(ReflectUtilities.scala:44)
  at scala.Option$WithFilter.foreach(Option.scala:208)
  at sbt.ReflectUtilities$$anonfun$allValsC$1.apply(ReflectUtilities.scala:44)
  at sbt.ReflectUtilities$$anonfun$allValsC$1.apply(ReflectUtilities.scala:42)
  at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
  at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
  at sbt.ReflectUtilities$.allValsC(ReflectUtilities.scala:42)
  at sbt.ReflectUtilities$.allVals(ReflectUtilities.scala:61)
  at sbt.Build$class.projects(Build.scala:13)
  at Build$.projects(Build.scala:10)
  at sbt.Build$class.projectDefinitions(Build.scala:12)
  at Build$.projectDefinitions(Build.scala:10)
  at sbt.Load$.sbt$Load$$projectsFromBuild(Load.scala:496)
  at sbt.Load$$anonfun$27.apply(Load.scala:436)
  at sbt.Load$$anonfun$27.apply(Load.scala:436)
  at scala.collection.immutable.Stream.flatMap(Stream.scala:442)
  at sbt.Load$.loadUnit(Load.scala:436)
  at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:281)
  at sbt.Load$$anonfun$18$$anonfun$apply$11.apply(Load.scala:281)
  at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:91)
  at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfun$apply$6.apply(BuildLoader.scala:90)
  at sbt.BuildLoader.apply(BuildLoader.scala:140)
  at sbt.Load$.loadAll(Load.scala:334)
  at sbt.Load$.loadURI(Load.scala:289)
  at sbt.Load$.load(Load.scala:285)
  at sbt.Load$.load(Load.scala:276)
  at sbt.Load$.apply(Load.scala:130)
  at sbt.Load$.defaultLoad(Load.scala:36)
  at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
  at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
  at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475)
  at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
  at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58)
  at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
  at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60)
  at sbt.Command$.process(Command.scala:92)
  at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
  at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
  at sbt.State$$anon$1.process(State.scala:184)
  at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
  at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
  at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
  at sbt.MainLoop$.next(MainLoop.scala:98)
  at sbt.MainLoop$.run(MainLoop.scala:91)
  at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
  at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
  at sbt.Using.apply(Using.scala:24)
  at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
  at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
  at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
  at sbt.MainLoop$.runLogged(MainLoop.scala:24)
  at sbt.StandardMain$.runManaged(Main.scala:53)
  at sbt.xMain.run(Main.scala:28)
  at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
  at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
  at xsbt.boot.Launch$.run(Launch.scala:109)
  at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
  at xsbt.boot.Launch$.launch(Launch.scala:117)
  at xsbt.boot.Launch$.apply(Launch.scala:18)
  at xsbt.boot.Boot$.runImpl(Boot.scala:41)
  at xsbt.boot.Boot$.main(Boot.scala:17)
  at xsbt.boot.Boot.main(Boot.scala)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.