2012-10-07 2 views
6

にコンパイルされます:ソースは、私は2/SBTを再生するにはMavenプロジェクトを移行したいプレイ2

私はtest/resources/に移動Mavenプロジェクトでsrc/test/resourcesでのテストのためのいくつかのリソースを持っていましたPlayプロジェクトで(Schleichardtのおかげでhis answer on Stackoverflow)。

これは通常のファイル(テキスト、バイナリデータなど)で動作しますが、現在はtest/resources/ディレクトリにあるJava-Sourceファイルに問題があります(別のJavaのプロジェクトでJavaパーサーをテストする必要があります)ソースファイル)。私がtestを呼び出すと、これらのファイルもコンパイルされ、エラーが発生します。

test/resources/のファイルがPlay/sbtからコンパイルされないようにするにはどうすればよいですか?

+0

を行うことができ、この後

import com.typesafe.sbteclipse.core.EclipsePlugin._ val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(defaultScalaSettings:_*).settings( ,resourceDirectory in Test <<= baseDirectory(_/"test-resources") ,EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource ) 

PlayProjectラインの前にインポートを追加する必要がありますか例えば、MyClass.javaをMyClass.txtにしますか? – Schleichardt

+0

はい、動作しますが、これらのリソースディレクトリには数百のJavaファイルがあります。だから、おそらくもっと良い解決策が存在するのでしょうか? – Sonson123

+2

それは助けるかもしれないhttp://stackoverflow.com/questions/7371802/sbt-to-exclude-source-directory –

答えて

8

テストリソースディレクトリは、Javaソースをコンパイルするディレクトリにあるため、テストリソースフォルダを移動できます。あなたの設定にこれを追加します。

resourceDirectory in Test <<= (baseDirectory) apply {(baseDir: File) => baseDir/"testResources"} 

例えばプロジェクト/ Build.scalaに:あなたは、テストを追加したい場合は

play "show test:resource-directory" 
+0

詳細な答えをもう一度おねがいします、これは最終的にソースファイルでも動作します。 – Sonson123

+0

この構成とeclipsifyコマンドの後、eclipseはクラスパスのパスとして "testResources"を表示しません。私たちは次に何をすべきですか? – raisercostin

2

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    resourceDirectory in Test <<= (baseDirectory) apply {(baseDir: File) => baseDir/"testResources"} 
) 

はしてコンソールで変更をコントロール-resourcesプロジェクト/ Build.scalaをPlayProjectに追加することで修正する必要があります.... .settings(

これらの行の間に空の行を残すことを忘れないでください。 ソースフォルダをeclipseすることを忘れないでください。 また、あなたはそれがファイル名を変更するのに役立ちますか?あなたは

play test 
play test-only xxx.yyy.zzz.TheTest 
play eclipsify 
+0

私はまだEclipseから実行したときに見つからないリソースに関するいくつかの問題を持っていますが、これは私にとって働くeclipseソリューションへの一歩前進だと思います。 – Sonson123

関連する問題