Ошибка компиляции с использованием классов Scala в проекте Java Maven - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть проект java maven, я установил плагин scala для затмения и добавил scala nature в свой проект. Теперь я написал несколько пользовательских Scala Actors и некоторые другие вспомогательные классы. Я использую эти классы Scala в своем Java-коде. во время написания кода он не выдает никаких ошибок. Но когда я делаю maven clean / build, он выдает ошибку компиляции, как показано ниже

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, Scala - 2.9.2, который поставляется с плагином

Я полагаю, для этого есть настраиваемая конфигурация компилятора? у меня также есть другой вопрос новичка

как запустить scala actor прямо в java и отправить ему сообщение? все, что я вижу, это метод act (). я хочу сделать это

actor {

CustomActor ! Message

}

в Java

спасибо sanre6

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Для первой части, вы добавили шаг компиляции scala к вашему maven pom?Вы добавили maven-scala-plugin в ваш pom?

Во второй части, как говорит Мирко, не существует простого способа определить Actor в Java.Вам нужно будет определить его в Scala, но затем вы сможете запустить его и отправить ему сообщения на Java.

Просто вызовите start() в экземпляре, и тогда вы сможете передавать ему сообщения.с использованием !метод.Это будет доступно в Java, но оно называется $bang.

2 голосов
/ 11 февраля 2012

Перейдите на http://scala -tools.org / mvnsites / maven-scala-plugin / example_java.html и используйте pom напрямую для первого теста. Я сделал это с:

  1. Класс Scala "ScalaUtils" внутри src/main/scala
  2. Java-класс внутри src/main/java, использующий ScalaUtils

Важно добавить компиляцию scala на правильном этапе, прежде чем будет скомпилирована Java:

<execution>
    <phase>process-resources</phase>
...