をMavenの、私は私のメインクラスをコンパイルするためにFSCデーモンを使用するように管理しています、この前の回答Fastest way to compile scala with mavenScalaのFSCとテストのソースファイルをコンパイルし、MavenのScalaのプラグインを使用して
のおかげでしかし、これは動作しません。テストソースファイル用。私はテストコンパイルフェーズのためにmavenの実行を追加することができますが、私はccの目標を指定すると、src/mainクラス(速いが間違ったクラス)をコンパイルします。 compileTestゴールを指定すると、標準のコンパイラ(正しいクラスだが遅い)を使ってsrc/testクラスをコンパイルします。
私には何が欠けていますか?
...いくつかの進歩があり、私が以下に投稿した回答で報告されています。
しかし..これは、コンパイルサーバーが起動していないことを示しています。 scala.tools.nsc.MainGenericRunner
クラスがクラスパス上でscala.tools.nsc.CompileServer
を見つけられないようです。今では、Javaクラスパスには、MainGenericRunner
を提供する同じjarファイルにあるので、私はそれが知っているが、何とか 'ユーザー'クラスパスを指定する必要がありますか? MavenプラグインによってCompileServerを開始するために実行されて
コマンドは次のようになります。
cmd.exe /C C:\Progra~1\Java\jdk1.7.0\jre\bin\java -classpath
C:\projects\m2\repository\org\scala-lang\scala-library\2.9.0-1\scala-library-2.9.0-1.jar;C:\projects\m2\repository\org\scala-lang\scala-compiler\2.9.0-1\scala-compiler-2.9.0-1.jar
-Xbootclasspath/a:C:\projects\m2\repository\org\scala-lang\scala-library\2.9.0-1\scala-library-2.9.0-1.jar
scala.tools.nsc.MainGenericRunner
scala.tools.nsc.CompileServer
-target:jvm-1.5 -unchecked
>C:\Users\...\AppData\Local\Temp\scala.tools.nsc.MainGenericRunner.out
2>C:\Users\...\AppData\Local\Temp\scala.tools.nsc.MainGenericRunner.err
そして、それを実行するには、
Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: scala.tools.nsc.CompileServer
at scala.sys.package$.error(package.scala:27)
at scala.tools.nsc.GenericRunnerCommand.scala$tools$nsc$GenericRunnerCommand$$guessHowToRun(GenericRunnerCommand.scala:38)
at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48)
at scala.Option.getOrElse(Option.scala:109)
at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:48)
at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:17)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:33)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
提案は歓迎MainGenericRunner.errファイルにこのエラーを取得します。.. !
私たちの主な理由は、我々が持っているということです混合言語プロジェクト - scala、java、およびC. SBTは、しかし、適用するのに役立つツールかもしれません。 – AndyT
親プロジェクトからのものを継承する必要がある場合は、はい、Mavenボックスからの脱退は特に困難です。そうしないと、SBTはMavenのアーティファクトを共有リポジトリに完全に公開することができ、POMを正しく生成することさえできます。 –