2011-08-19 9 views
21

私のアプリを実行するときにJVMオプションを指定するか、SBTを使ってアプリのテストを指定したいと思います。具体的には、JVMに-Djava.security.policyパラメータを与えて、ポリシーをロードしてテストに使用できるようにする必要があります。アプリケーションやテストケースの実行時に使用するためにJVMオプションをSBTに渡すにはどうすればよいですか?

SBTでどうすればいいですか? xsbt

答えて

11

、あなたはフォークのJVMを使用している場合は、「Running Project Code」で述べた理由のforked JVM(理由の1

でテストを実行できます。

がに設定を指定します。本体のみまたはテスト実行タスクに影響を与える:

scala javaOptions in (Test,run) += "-Xmx8G" 
かを指定することができるはずです

そのJVMのその他のオプションはjavaOptionsです。以下の設定がないため、SBTのオプションの、しかしため、パスの、最初はうまくいかなかったことを


OP David Eagenレポート:

lazy val escacheServer = 
    Project("escache-server", 
      file("server"), 
      settings = buildSettings ++ Seq(resolvers ++= 
         Seq(scala_tools_snapshots, typesafe_repo), 
         libraryDependencies ++= escacheServerDeps, 
         javaOptions in run += "-Djava.security.policy=jini.policy", 
         fork in run := true 
        ) 
     ).dependsOn(escache) } 

私の問題があることだったように見えます現在のディレクトリにjini.policyが見つかりませんでした。
私は完全なパスを設定し、今はそれが実行されます。

+0

ここでjavaOptionsを設定しますか? lazy val escacheServer = Project( "escache-server"、file( "server")、 \t \t \t settings = buildSettings ++このようにプロジェクトの設定に追加すると、何もしていないように見えます。 \t \t \t \t配列(レゾルバ++ = SEQ(scala_tools_snapshots、typesafe_repo)、++ = escacheServerDeps \t \t \t \t libraryDependencies、ランで \t \t \t \t javaOptions + =「に-Djava.security.policy = jini.policy "、 \t \t \t \t目でフォーク:=真 \t \t \t \t)).dependsOn(escache) } –

+0

私は私のプロジェクトでそれを使用するときのJVMオプションが実際に設定されますかのように見えます。私は最大ヒープを24Gに設定してテストしましたが、私が使用しているシステムでは処理できません。確かに十分なSBTは失敗を報告しました:[エラー]無効な最大ヒープサイズ:-Xmx = 24G -Djava.security.policy = jini.policy現在のディレクトリにjini.policyが見つかりませんでした。私は完全なパスを設定し、今それは実行されます...おかげでVonC。 –

+0

@David:優れています。私はあなたの設定と結論を答えに含めて、より多くの可視性を得ました。 – VonC

関連する問題