4

Eclipse Scala IDEで編集し、 sbt~ testを使用して別の画面でテストを実行しています。私のテストはspecs2を使用して書かれています。

これにより、ダブルコンパイルが可能になり、sbtが開始されている間、Eclipseがまだビルドされていることがあります。

これを解決するために、自動ビルドをオフにしましたが、これにより、Eclipse内の優れたコンパイラーの警告とエラーも削除されます。

コンパイル時間を2倍にせずに両方を使用する方法はありますか?

編集

sbt最善の方法(またはおそらく唯一の方法)は、テストをコンパイルせずに実行することだと思います。コマンドを試しましたtest:runが、次のエラーが発生します。

java.lang.RuntimeException: No main class detected.
    at scala.sys.package$.error(package.scala:27)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27$$anonfun$13.apply(Defaults.scala:519)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27$$anonfun$13.apply(Defaults.scala:519)
    at scala.Option.getOrElse(Option.scala:108)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27.apply(Defaults.scala:519)
    at sbt.Defaults$$anonfun$runTask$1$$anonfun$apply$27.apply(Defaults.scala:518)
    at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
    at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
    at sbt.std.Transform$$anon$5.work(System.scala:71)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)

~ test:runEclipseがファイルをコンパイルしているときにどのように使用できますか?

4

2 に答える 2

3

二重コンパイルがなくても、Eclipseですべての警告が表示されることは、Eclipse側からは不可能です。

しかし、sbtのつま先を踏まないようにEclipseを構成することができます。コンパイルに同じ出力フォルダーを使用する必要はありません。

プロジェクトで、テストソースフォルダーのをProperties > Java Build Path > Source選択しOutput folder、場所をのように変更しますtarget/eclipse/test-classes

ここに画像の説明を入力してください

このように、ScalaIDEはsbtによって作成されたクラスファイルに影響を与えません。

メインのソースフォルダに対しても同じことを行う必要があるかもしれません。

于 2013-03-26T19:50:14.700 に答える
0

現在のsbteclipseバージョンでは、次の設定を使用できます。

EclipseKeys.eclipseOutput := Some(".target")

ドキュメントはここにあります:sbteclipseの使用

于 2014-10-16T22:32:23.560 に答える