2016-11-14 4 views
1

Ivyのホームディレクトリをコマンドラインバージョンのsbtに変更するのは簡単です。 -Dsbt.ivy.home=<new ivy home dir>オプションを$SBT_HOME/conf/sbtconf.txtに追加するだけです。IntelliJ IDEAでIvy homeを変更する方法

IntelliJ IDEAのScala拡張機能(私のCドライブのディスク領域が不足しています)でも同じことをやりたいと思います。したがって、SBT設定を次のように変更しました。ファイル - >その他の設定 - >デフォルト設定 - >ビルド、実行、展開 - > BuildTools - > SBTVMパラメータの下に、-Dsbt.ivy.home=<new ivy home dir>というエントリを追加しました。これは、コマンドラインツールと同じ効果があります。

Scalaプロジェクトの新しくsbtを作成し(メッセージを出力するScalaオブジェクトを追加すると)、すべてうまく動作しているようです。私はプログラムを構築して実行することができます。しかし、プロジェクトのソースコードに変更を実行し、作った後(ビルド - >プロジェクトください)2〜3回、私は次のエラー守っ:

Error:scalac: Error: assertion failed: 
    Precisely this override requires its invoker to hand out a non-null AbstractFile. 
    while compiling: D:\Temp\scala\scalatest3\src\main\scala\Main.scala 
     during phase: jvm 
    library version: version 2.12.0 
    compiler version: version 2.12.0 
    reconstructed args: -nobootcp -javabootclasspath ; -classpath C:\Program Files\Java\jdk1.8.0_102\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\rt.jar;D:\temp\scala\scalatest3\target\scala-2.12\classes;D:\Bin\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.12.0.jar 
    last tree to typer: TypeTree(class ListBuffer) 
     tree position: line 4 of D:\Temp\scala\scalatest3\src\main\scala\Main.scala 
      tree tpe: scala.collection.mutable.ListBuffer[() => Unit] 
       symbol: final class ListBuffer in package mutable 
    symbol definition: final class ListBuffer extends AbstractBuffer with Buffer with GenericTraversableTemplate with BufferLike with ReusableBuilder with SeqForwarder with Serializable (a ClassSymbol) 
     symbol package: scala.collection.mutable 
     symbol owners: class ListBuffer 
      call site: constructor Main$delayedInit$body in class Main$delayedInit$body in package <empty> 
== Source file context for tree position == 
    1 * Created by P20058 on 14.11.2016. 
    2 */ 
    3 object Main extends App { 
    4 println("Hello scalatest") 
    5 
    6 } 
java.lang.AssertionError: assertion failed: 
    Precisely this override requires its invoker to hand out a non-null AbstractFile. 
    while compiling: D:\Temp\scala\scalatest3\src\main\scala\Main.scala 
     during phase: jvm 
    library version: version 2.12.0 
    compiler version: version 2.12.0 
    reconstructed args: -nobootcp -javabootclasspath ; -classpath C:\Program Files\Java\jdk1.8.0_102\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\rt.jar;D:\temp\scala\scalatest3\target\scala-2.12\classes;D:\Bin\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.12.0.jar 

    last tree to typer: TypeTree(class ListBuffer) 
     tree position: line 4 of D:\Temp\scala\scalatest3\src\main\scala\Main.scala 
      tree tpe: scala.collection.mutable.ListBuffer[() => Unit] 
       symbol: final class ListBuffer in package mutable 
    symbol definition: final class ListBuffer extends AbstractBuffer with Buffer with GenericTraversableTemplate with BufferLike with ReusableBuilder with SeqForwarder with Serializable (a ClassSymbol) 
     symbol package: scala.collection.mutable 
     symbol owners: class ListBuffer 
      call site: constructor Main$delayedInit$body in class Main$delayedInit$body in package <empty> 

== Source file context for tree position == 

    1 * Created by P20058 on 14.11.2016. 
    2 */ 
    3 object Main extends App { 
    4 println("Hello scalatest34") 
    5 
    6 } 

    at scala.tools.nsc.backend.jvm.BytecodeWriters$ClassBytecodeWriter.writeClass(BytecodeWriters.scala:120) 

    at scala.tools.nsc.backend.jvm.BytecodeWriters$ClassBytecodeWriter.writeClass$(BytecodeWriters.scala:118) 

    at scala.tools.nsc.backend.jvm.BytecodeWriters$$anon$4.writeClass(BytecodeWriters.scala:47) 

    at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.sendToDisk$1(GenBCode.scala:408) 

    at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.drainQ3(GenBCode.scala:427) 

    at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.buildAndSendToDisk(GenBCode.scala:387) 

    at scala.tools.nsc.backend.jvm.GenBCode$BCodePhase.run(GenBCode.scala:350) 

    at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404) 

    at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389) 

    at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384) 

    at scala.tools.nsc.Global$Run.compile(Global.scala:1478) 

    at xsbt.CachedCompiler0.run(CompilerInterface.scala:115) 

    at xsbt.CachedCompiler0.run(CompilerInterface.scala:94) 

    at xsbt.CompilerInterface.run(CompilerInterface.scala:22) 

    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:498) 

    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101) 

    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47) 

    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) 

    at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:29) 

    at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:26) 

    at org.jetbrains.jps.incremental.scala.remote.Main$.make(Main.scala:67) 

    at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:24) 

    at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) 

    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:498) 

    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319) 

プロジェクトを再構築(ビルドを - >プロジェクトを再構築します。 )が動作します。しかし、の後にを繰り返して上記のエラーが再現します。 私は何が恋しい?

+0

正確にこれがivyの問題ですか? –

+0

オプション '-Dsbt.ivy.home = 'を削除するとビルドエラーがなくなります。私はコマンドラインから* sbt *を使うとうまく動作するので、IntellJ Scalaプラグインの問題だと思います。 –

答えて

0

私のケースでは、2つの異なるバージョンのテストライブラリを使用していました。

関連する問題