2011-11-08 12 views
0

私はjava mavenプロジェクトを持っています。私はEclipse用のscalaプラグインをインストールし、自分のプロジェクトにscala natureを追加しました。さて、私はいくつかのカスタムスカラーアクターと他のユーティリティクラスを書いています。これらのスカラークラスを私のJavaコードで使用しています。コードを書いている間、それは私がきれい/ビルドをMavenを行う際.Butが、それはコンパイルエラーのようにスローされたエラーをスローしませんjava mavenプロジェクトのスカラクラスを使用したコンパイルエラー

11/8/11 10:45:23 AM : [ERROR] ............\Simple.java:[86,10] cannot find symbol 
symbol : variable ExecutorObject 
location: class com.ms.scala.Simple 
11/8/11 10:45:23 AM : [INFO] 2 errors 
11/8/11 10:45:23 AM : [INFO] ------------------------------------------------------------- 
11/8/11 10:45:23 AM : Build errors for Project; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project : Compilation failure 

のEclipse IDE以下:HELIOS -3.5、スカラ - 来2.9.2プラグインを使用してください

これを行うためのカスタムコンパイラの設定がありますか?私も他の初心者の質問があります

あなたはどのようにしてJavaで直接scala actorを起動し、メッセージを送信しますか?私が見ることができるのはact()メソッドだけです。私は、java

でこの

actor { 

CustomActor ! Message 

} 

をしたいあなたはMavenのPOMにScalaのコンパイルステップを追加した、最初の部分のためにあなたに sanre6

+1

いくつかのコードを表示できますか?あなたの最初の問題の原因を推測することは非常に難しいです。あなたの2番目の質問に関しては、Scalaの 'actor'メソッドをエミュレートする簡単な方法がないので、自動的にJavaでアクターを開始します(Javaはまだクロージャーをサポートしていないためです)。 –

+0

よく、実際に問題のコードではなく、同じコードが普通のJavaプロジェクトで正常に動作します。しかし、。 mavenコンパイラプラグインを使用してmavenプロジェクトでこれらのクラスを使用すると、これらのエラーが発生します。なぜ、俳優がJavaで直接使用できないのかという理由で説明してくれてありがとう – sanre6

答えて

3

に感謝? maven-scala-pluginをあなたのpomに追加しましたか?

Mircoによると、JavaでActorを定義する簡単な方法はありません。 Scalaで定義する必要がありますが、それを開始してJavaでメッセージを送信することができます。

インスタンスでstart()に電話するだけで、!を使用してメッセージを渡すことができます。方法。これはjavaで利用可能ですが、$bangと呼ばれています。

+0

私はmaven scalaプラグインを追加していませんでしたか?したがって、プラグインで使用されるJavaコンパイラは、スカラクラスをコンパイルできません。 – sanre6

+0

通常のmavenコンパイラプラグインは、スカラクラスをコンパイルできません。 maven scalaプラグインを追加する必要があります。 –

+0

maven-scala-pluginは、Java/scalaコードの混在に関するすべての問題を解決しました。今、私はmaven-scala-pluginを使用して、コンプライアンススカラクラスとして最初のステップですべての私のmavenの目標を実行することができます。ヒント男のおかげで、あなたは私の一日を作った – sanre6

2

http://scala-tools.org/mvnsites/maven-scala-plugin/example_java.htmlに移動し、最初のテストにpomを直接使用します。で、Scalaのコンパイルを追加するために "ScalaUtilsを"

重要なことはされて使用していますsrc/main/javasrc/main/scala

  • Javaクラス内

    1. A Scalaのクラス "ScalaUtils":私はそれを行っていますJavaがコンパイルされる前の適切な段階:

      <execution> 
          <phase>process-resources</phase> 
      
  • +0

    上記のリンクは死んでいます。新しいリンク? –

    +0

    Ok - 私が使用しているscala-maven-pluginの対応するリンクが見つかりました:http://davidb.github。I /スケールのmaven-pluginの/ example_java.html –

    関連する問題