scala構築ツールSBTの使用_構築定義

3076 ワード

  • 構築定義の3つのスタイル
  • 多工事sbt構築定義
  • bare .sbt構築定義
  • scala構築定義
  • コンストラクション定義sbtとは、プロジェクトをチェックし、コンストラクション定義ファイルを処理した後、Project定義を形成するものです.在build.sbtでは、
    lazy val root = (project in file("."))
    
    構築定義ファイルがsbtのmapに直接影響しないように、このディレクトリのProjectエンジニアリング定義を作成できます.代わりに、コンストラクション定義は、マッピングテーブルの値(value)のタイプであるSetting[T]の巨大なオブジェクトリストを作成します.1つのSettingsは、新しいキー値ペアを追加したり、既存のvalueに追加したりするように、マッピングテーブル(map)への変換を記述する.(可変データ構造と値の使用に関する関数プログラミングの考え方では、一度の変換で新しいmapが返されます.古いmapはその場で更新されません.)まとめ:コンストラクション定義はProjectで、Setting[T]のタイプのリストを持ち、setting[T]はsbt保存キー値ペアに影響を与えるmapの変換であり、Tは各valueのタイプである.
    lazy val root = (project in file(".")).
      settings(
        name := "hello"
      )
    
  • build.sbtで定義された設定
    lazy val commonSettings = Seq(
      organization := "com.example",
      version := "0.1.0",
      scalaVersion := "2.11.7"
    )
    
    lazy val root = (project in file(".")).
      settings(commonSettings: _*).
      settings(
        name := "hello"
      )
    
    これらの式はval,lazy val,defで宣言することができる.build.sbtでは、最上位レベルのobjectおよびclassは使用できません.プロジェクト/ディレクトリの下に完全なScalaソースファイルとして書く必要があります.
  • Keys
  • タイプ
  • SettingKey[T]:1つのkeyは1回のみ計算されるvalueに対応する(この値はプロジェクトをロードするときに計算され、ずっと保存されている).
  • TaskKey[T]:1つのkeyはtaskと呼ばれるvalueに対応し、毎回再計算され、潜在的な副作用がある可能性がある.
  • InputKey[T]:1つのkeyはコマンドラインパラメータを受信できるtaskに対応する.詳細はInput Tasksを参照してください.

  • 内蔵keys内蔵keysは、実際にはオブジェクトKeysのフィールドです.build.sbtはimport sbtを暗黙的に含む.Keys._,だからnameでsbt.を取ることができます.Keys.name.
  • カスタムKeysは、settingKey、taskKey、inputKeyのそれぞれの作成方法によってカスタムkeysを作成できます.各方法はkeyとvalueのタイプと説明を期待している.keyの名前はval変数に割り当てられた値から取得されます.たとえば、新しいtask helloにkeyを定義し、
      lazy val hello = taskKey[Unit]("   task   ")
    
    valsおよびdefsを空白行および設定(settings)で区切る必要があります.定義Tasks:
      lazy val hello = taskKey[Unit]("An example task")
    
      lazy val root = (project in file(".")).
        settings(
          hello := { println("Hello!") }
        )
    
    定義setting
      lazy val root = (project in file(".")).
        settings(
          name := "hello"
        )
    
  • インタラクティブモードのkeys sbtインタラクティブモードでは、taskのnameを入力してtaskを実行できます.これは、compileを入力することがcompile taskを実行するためです.compileはこのtaskのkeyです.task keyのnameを入力すると、taskが実行されますが、実行結果の値は表示されません.このtaskの実行結果を簡単に見るのではなくshowを入力します.
  • build.sbtのimportは、import文をbuildに置くことができます.sbtの上部;空の行で区切らなくてもいいです.
      import sbt._
      import Process._
      import Keys._
    
  • 依存ライブラリ
      val derby = "org.apache.derby" % "derby" % "10.4.1.3"
    
      lazy val commonSettings = Seq(
        organization := "com.example",
        version := "0.1.0",
        scalaVersion := "2.11.7"
      )
    
      lazy val root = (project in file(".")).
        settings(commonSettings: _*).
        settings(
          name := "hello",
          libraryDependencies += derby
        )
    
    %を追加する方法は、IvyモジュールIDを文字列から構築するために使用され、ライブラリ依存について説明する.