4

私はときどき Scala フォークをいじり、SBT プロジェクトでこれらのフォークをデバッグする必要があることがあります。一般的にscalaHomeはうまく機能しますが、達成するためのより良い方法を見つけたいことがいくつかあります。

ant quick1) ビルドによって生成されたjar ファイルではなく、ビルドによって生成されたカスタム scalac クラス ファイルを SBT に取得させることは可能ant packですか? 後者は、ビルドごとに 5 ~ 10 秒の追加の遅延を意味するため、回避することをお勧めします。

2) 大規模なプロジェクトであっても、scalac で発生する問題は、通常、単一のファイルをコンパイルするときに明らかになります。sbt に、変更追跡ヒューリスティックを無視して、1 つのファイルだけを再コンパイルするように指示する方法はありますか? 私が特に防止したいのは、scalaHomescalac フラグを再コンパイルまたは変更するときに全世界を再コンパイルすることです。

scalaHome3) が再コンパイルされたときに、sbt ホット リロード scalac クラスを から取得することは可能でしょうscalaHomeか? 現在、変更を適用するには、sbt をシャットダウンして再起動する必要があります。

4

1 に答える 1

3

1) いいえ、これは sbt を Scala ビルドの詳細に依存させることになります。Scala が sbt でビルドされている場合、ソースの依存関係として Scala に依存できるか、または少なくともあまり多くの変更を加えることなくサポートできる可能性があります。

2) いいえ、https://github.com/sbt/sbt/issues/604を参照してください。

3) sbt 0.13 は、jar ファイルの最終更新時刻をチェックしscalaHome、新しいクラスローダーを使用する必要があります。そうでない場合はバグです。

于 2013-10-10T14:09:27.223 に答える