私のプロジェクトでは依然としてsbt 0.7.7が使用されており、sbtプロンプトから実行できるユーティリティクラスを持つことが非常に便利です。私はこれを、ホストからホストに変わる環境関連の値のために、別々に管理されているプロパティと組み合わせることもできます。これはproject/build
ディレクトリの下に私のプロジェクトの定義の例です:sbt 0.11タスクの例が必要です
class MyProject(info: ProjectInfo) extends DefaultProject(info) {
//...
lazy val extraProps = new BasicEnvironment {
// use the project's Logger for any properties-related logging
def log = MyProject.this.log
def envBackingPath = path("paths.properties")
// define some properties that will go in paths.properties
lazy val inputFile = property[String]
}
lazy val myTask = task { args =>
runTask(Some("foo.bar.MyTask"),
runClasspath, extraProps.inputFile.value :: args.toList).dependsOn(compile)
describedAs "my-task [options]"
}
}
私は、その後のsbtシェルの下my-task option1 option2
としての私のタスクを使用することができます。
私はTasksとTaskInputs上のセクションを含むhttps://github.com/harrah/xsbt/wikiで新しいSBT 0.11ドキュメントを読んできたし、率直に言って、私はまだ私は0.7.7に何をしたか実現する方法に苦労しています。
余分なプロパティは別のenvironment.sbt
に置き換えることができます。そのタスクは、build.sbt
に設定する前にproject/build.scala
に定義する必要があります。非常に興味深い完成サポートがあるようにも見えます。
それを超えると、私はいくぶん圧倒されます。私は新しいsbtで何をしたのですか?
私は助けたいのですが、私は、SBT 0.7.7についての詳細は覚えていません。私はこの質問がsbt 0.11に関する複数の自己完結型の質問に分割できるのだろうか? –
@KiptonBarros、確かに、基本的な 'runTask'から始めて、sbtシェルで引数を提供することができます。 – huynhjl
sbtのドキュメントが現在改訂されているようです。私は、[Input Tasks](https://github.com/harrah/xsbt/wiki/Input-Tasks)wikiページの「Basic Input Task Definition」セクションがあなたが探しているものだと思います。 –