2016-03-26 14 views
0

私は、作業するスケルトンSBTプロジェクトを与えられました。SBTプロジェクトを開始する

|-- build.sbt 
|-- project 
| |-- build.properties 
| |-- plugins.sbt 
| |-- project 
| `-- target 
|-- README.md 
`-- src 
    |-- main 
    | `-- scala 
    |  `-- com 
    |   `-- app-name 
    |    |-- domain 
    |    |-- exception 
    |    |-- repository 
    |    `-- util 
    `-- test 
     `-- scala 
`-- Vagrantfile 

命令は、単一のコマンドライン引数を取り、いくつかのロジックを実行する必要がありアプリのエントリポイントを作成するには、次のとおりです。次のようにディレクトリ構造があります。

私は単純な "hello world" sbtプロジェクトを動かすことができましたが、私はscala/sbtを初めて使っています。このエントリポイントはどこに置かれますか?また、コマンドライン引数を受け入れる方法はありますか?

+0

単純にパラメータを渡す:run param1 param2 ..などエントリーポイントはどういう意味ですか? App trait extensionを持つオブジェクト? – Pavel

答えて

1

ソースファイルのルートフォルダはsrc/main/scalaです。

パラメータは、エントリポイントオブジェクト内のargs配列を使用して参照されます。

エントリポイントは、そのソースツリーの下にあるオブジェクトで、extends Appです。これはおはようございます世界の例であり、あなたはちょうど始めているので、私はソースの根元にそれをドロップします(src/main/scala/MyApp.scala)。このような

何か:

object MyApp extends App { 
    println(args.length match { 
     case 0 => "You passed in no arguments!" 
     case 1 => s"You passed in 1 argument, which was ${args(0)}" 
     case x => s"You passed in $x arguments! They are: ${args.mkString(",")}" 
    }) 
} 

プロジェクトのルートにsbt runコマンドを発行し、アプリケーションを実行します。パラメータを指定して実行するには、sbt run "arg1"を実行します。

+0

ああ、あなたの環境/インストールとは別の問題のように見えます...残念ながら、私はScala&sbt自身のことでは初めてです。 'sbt console'を実行するとどうなりますか? – Ruslan

+0

OK、私は自分の環境を整理したと思いますが、コードを実行するとコンパイルエラーが発生します: 'java.lang.ArrayIndexOutOfBoundsException:0' – harryg

+1

実際にsbt内にいるときは' run arg1 arg2'または 'run" arg1 "" arg2 "'またはシェル 'sbt"からarg1 arg2 "'を実行します。あなたが提案したものはただ一つの引数 '' arg1 arg2 "' –

関連する問題