web-dev-qa-db-ja.com

sbt、Eclipse、githubで新しいScalaプロジェクトを初期化する方法

新しいScalaプロジェクトをsbt、Eclipse、およびgithubで初期化して、すべてが一緒に再生されるようにする方法...

20
matanster

新しいScalaプロジェクトでは、通常、sbt、Eclipse(選択した場合)、およびgithub用にセットアップして、すべてが連携するようにする必要があります。このセットアップに時間を費やした後、より簡単な方法が利用できない限り、これら3つのツール/サービスを調整するためのこのリスト。私にとって有効な一連の手順は次のとおりです。Scala IDEプラグイン。

  1. 新しいリポジトリを作成します Github内
  2. 新しいプロジェクトのディレクトリの場所を決定します
  3. Eclipseで、Gitリポジトリビューを使用して、Githubリポジトリをその場所にインポートします。または、コマンドラインgitを使用することもできます。
  4. プロジェクト用に選択したのと同じ場所を見つけて、sbt Eclipseを実行します。これにより、Eclipseがsbtプロジェクト構造を処理できるようになり、プロジェクトをsbtでビルドできると同時に、Eclipseでも理解できるようになります。 sbt Eclipseが機能しない場合は、sbtEclipseプラグインがsbtにインストールされていない可能性があります- インストールする
  5. Eclipseで、File --> Import --> General --> Existing Projects into Workspaceを使用して同じ場所を選択すると、Eclipseはsbtによって準備されたばかりのファイル構造のプロジェクト構造を構築します。
  6. Eclipseファイルとsbtファイルを無視するように.gitignoreファイルを更新して、gitに新しいプロジェクトのコア以外のすべてを無視させる。現在、以下は問題ないようです。

    *.class
    *.log
    
    # sbt specific
    dist/*
    target/
    lib_managed/
    src_managed/
    project/boot/
    project/plugins/project/
    
    # Scala-IDE specific
    .scala_dependencies
    
    # Eclipse specific
    .project
    .classpath
    .cache
    

これで、Eclipseとsbtでプロジェクトを実行し、gitを介してコードの変更をコミットしてプッシュできるようになります。空のプロジェクトの実行を確認するには、この段階で非常に理にかなっている可能性があります。Eclipseのscalaクラスを追加して、次のコードのみを含めることができます。scalaソースは通常、src/main/scalaの下に配置する必要があります。このパスがまだ存在しない場合は、Unixのmkdir -p src/main/scalaなどを使用して作成します。

object hello {
  def main(args: Array[String]) {
    println("Main starting")  
  }
}

または、このコードのみ:

object app extends App {
  println("Application starting")  
}

これで動作するはずです。 Eclipse、sbtなどの将来のバージョンがこれを時代遅れにする可能性があることを否認する必要があります。これがご使用の環境で完全に間違っている場合は、より適切な回答を追加できます。

30
matanster

これらのツールは自明ではないため、以前の回答は質問と同様に非常に重要です。不可能に思えたこの課題の個人的な経験に基づいていますが、いくつかの重要な保険契約の参照ポイントを認めると、事態は現実のものになります。

  1. 開発環境の実装では、新しいツールが採用されると根本的な再インストールが必要になる場合があります(GITではローカル作業ディレクトリに空のハウスが必要なため、SBTの作業ディレクトリを空にする必要がある場合があります)。
  2. GUIまたはコマンドによって開始されるクレンジング操作の一部が、他のツール/レイヤーの要件に関係なく、驚くほどの効果でそれを本当に処理するため、特にこの「ドミノ」環境レイヤーのリセットを検討する場合は、本当によく更新されたバックアップを保持してください
  3. 物事を(再び)実現するために、重要な段階で本当に良いドキュメント(以前の実用的な答えを含む)を保持します
0
Bene Volent