IDEについての質問はこちらにあります- これはIDE for Scala development? および What Scalaのツールの現在の状態は? ですが、IDEと混合した経験があります。現在、Eclipse IDEと自動ワークスペース更新オプションを使用しています。私のテキストエディタとしてのKDE 4のKateここに、私が解決したいいくつかの問題があります。
-Xprint:jvm
をコンパイラに渡して(下位のコードを出力する)もよいでしょう。fsc
よりもさらに迅速に動作します。AntとMavenを調べましたが、まだ採用していません(#3と#4の解決にも時間を費やす必要があります)。次善のビルドシステムを動作させるために時間を費やす前に、他の提案があるかどうかを確認したかったのです。前もって感謝します!
[〜#〜] update [〜#〜]-現在、Mavenを使用しており、プロジェクトをコンパイラプラグインとしてそれに渡します。それは十分に速いようです。 Mavenがどのようなjarキャッシングを行うのかはわかりません。 Scala 2.8.0の現在のリポジトリが利用可能です[ link ]。アーキタイプは非常にクールで、クロスプラットフォームのサポートは非常に優れているようです。ただし、コンパイルの問題について、fscが実際に修正されているかどうか、またはプロジェクトが十分に安定しているかどうか(クラス名が変更されていないなど)がわかりません-手動で実行してもそれほど問題にはなりません。例を確認したい場合は、 [ github ]を使用しているpom.xmlファイルを自由に参照してください。
UPDATE 2-私が見たベンチマークから、Daniel SpiewakはビルダーがMavenよりも高速である(そして、増分変更を行っている場合、Mavenの10秒)レイテンシは煩わしくなります)、互換性のあるビルドファイルを作成できるのであれば、おそらくそれだけの価値があります...
ポイント2と4は、現在のスカラーで管理するのが非常に困難です。問題は、Scalaのコンパイラーがファイルの作成について少しばかげていることです。基本的に、そのファイルを本当にビルドする必要があるかどうかに関係なく、フィードしたものは何でもビルドします。 Scala 2.8.0では、この点で大幅な改善が行われますが、それまでは... Eclipse SDTには、変更の検出と依存関係の追跡を行うための非常に手の込んだ(そして非常にハックな)コードがあります。 Eclipse SDT 2.8.0は、前述のscalac自体の改善に依存します。
したがって、変更されたファイルのみをビルドすることは、ほとんど問題外です。 SDTを除いて、これを試すことさえ知っている唯一のツールはSBT( Simple Build Tool )です。ファイルがコンパイルされるときにコンパイラプラグインを使用してファイルを追跡し、コンパイラ自体が計算した依存関係グラフを照会します。実際には、これにより、世界での再コンパイルのアプローチよりも約50%改善されます。繰り返しますが、これは2.8.0より前のscalacの欠陥を回避するためのハックです。
良い知らせは、変更の検出について心配しなくても、適度に高速なコンパイルが依然として可能であることです。 FSCは、Eclipse SDTが高速インクリメンタルコンパイルを実装するために使用するのと同じテクノロジー(「チャーリーエペス」のように聞こえます)を使用します。一言で言えば、それはかなり機敏です。
個人的に、私は Apache Buildr を使用します。その構成は、MavenやSBTのどちらよりも大幅にクリーンであり、起動時間は数桁少なくなります(MRIで実行する場合)。 FSCと統合し、基本的な変更検出を独自に実行しようとします(かなりプリミティブ)。また、主要なScalaテストフレームワーク(ScalaTest、ScalaCheck、Specs))の自動魔法サポートに加えて、Javaソースおよび= IDE IntelliJとEclipseのメタ生成。ああ、それはMavenのすべての機能(依存関係の解決など)をサポートし、次にいくつかをサポートします。インタラクティブなシェルサポートの統合を可能にする拡張機能にも取り組んでいますJavaRebelを使用し、いくつかのシェルプロバイダー(Scala、JIRB、Clojure REPLなど)をサポートしています。SVNの準備はまだ整っていませんが、準備ができたら(おそらく1.3.5に間に合うように)コミットします。
ご覧のとおり、私はBuildrが最高のビルドツールであるという意見を非常に強く信じていますScalaそこにあるビルドツールです。そのドキュメントは、Scala心配ですが、それはすべてが単純すぎて、冗長に感じることなく文書化するのが難しいためです。たとえば、いつでも my GitHubリポジトリ の1つをチェックアウトできます。頑張ってください!
Intellij IDEA and its Scala integration ?Intellijは、Java=開発者の間で忠実な(狂信的な?)これはあなたのニーズに適しているかもしれません。
Emacsを使用している場合、 Ensime はかなり良いIDEだと思います。私が書いている時点では、EnsimeがIDEおよびScalaオブジェクトの両方で暗黙的変換を含む高速かつ正確なオートコンプリートを提供する唯一のJavaだと思います。
Speedbarを使用したコードブラウジングサポート、優れたYasnippetを使用したコードテンプレート、オートコンプリートを使用したコード補完メニューがあります。これらはすべて非常に近代的で、積極的に保守されているEmacsパッケージです。 MavenとSBTの追加設定なしの追加ビルドもサポートされています。
インタラクティブなデバッグ、リファクタリング、下位プロセスのScalaインタープリターなど、他にもたくさんあります。最新のIDE for Scalaに必要なものはすべて、Ensimeにすでにあります。 Emacsensに強くお勧めします。
Eclipseのscalaプラグインにもかなり不満を感じています。リストにいくつかの問題を追加できます。
Buildrが(とにかくビルドフロントで)より良い代替手段のように聞こえると聞いてうれしく思います。試してみます-ありがとうございます!
完全性の理由から、私は パンツ -Twitterで使用されているビルドツール(初期のscala採用者)の1人)もいると言わざるを得ません。
主な違いは、scala(そしてpythonで書かれている)だけでなく) google build system をモデルにしていることだけです。
これはsbtほど肥大化していないので、新入生にとってははるかに単純ですが、Twitterやfoursquare以外でのパンツの使用について聞いたことがありません。
SBTが怖い場合は、おそらく別のそれほど人気のないビルドツール [〜#〜] abt [〜#〜] が代替あなたのために?
私は同じ道を下りました、そしてここが私がいるところです:-いくつかの最初の調査の後、私はケイトを落としました。私はほとんどの場合にそれを使用するのが好きですが、タブ補完の定義などのことになると、それはひどく欠けていることに気づきました。代わりにgeditを検討することをお勧めします。これは、Scala開発に対してより堅牢です-私のエディターとしてgeditを使用しているため、SBTを使用しており、優れたビルドツールであることがわかりました。コードを変更すると、関連するファイルが再コンパイルされてテストスイートが実行される「テスト」モードにします。これは非常に効果的な方法です。
まだBuilderを確認していません。申し上げたいと思いますが、正直なところ、SBTを自由に使えるので、別のビルドツールを検討する必要が本当にありません。
Eclipseを使用したいが、sbtを使用してプロジェクトをビルドし、それでもデバッグできる場合は、こちらの投稿をご覧ください。
zikaprog.wordpress.com/2010/04/19/scala-Eclipse-sbt-and-debugging/
また、sbt以外のビルダーにも適用できます。
Mavenの最新バージョンScalaプラグインは、起動時間とインクリメンタルビルドを高速化するためにZinc/Nailgunをサポートしています。 Zincとインクリメンタルコンパイル を参照してください。