2016-04-04 2 views
1

Время от времени я начинаю все с нуля, чтобы убедиться, что знаю, что все сложные детали настройки проекта. У меня есть простое приложение вроде следующего, но я получаю некоторые проблемы с зависимостями, которые, похоже, не указывают мне нигде. Я использую scala verions 2.11.Мой первый проект Akka в IntelliJ с нуля. Ошибка компиляции.

Мои SBT:

name := "Helios" 

version := "1.0" 

scalaVersion := "2.11.8" 

resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/" 

libraryDependencies ++= Seq(
    "com.typesafe.akka" % "akka-actor" % "2.0.2", 
    "com.typesafe.akka" % "akka-slf4j" % "2.0.5") 

Мой образец Класс

import com.echostar.ese.helios.core.Asset 
import akka.actor._ 

class NSPSG extends Actor { 

    def receive = { 
    case a: Asset => { 
     println(s"NSPSG Received asset: ${a}") 
    } 
    case _ => println("Unexpected message received") 
    } 
} 

(класс активов является только случай класса с идентификатором и названием в нем.)

Сообщение об ошибке:

C:\PROJECTS\active\Helios>sbt compile 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 
[info] Loading global plugins from C:\Users\dana.murad\.sbt\0.13\plugins 
[info] Loading project definition from C:\PROJECTS\active\Helios\project 
[info] Set current project to Helios (in build file:/C:/PROJECTS/active/Helios/) 
[info] Updating {file:/C:/PROJECTS/active/Helios/}helios... 
[info] Resolving jline#jline;2.12.1 ... 
[info] Done updating. 
[info] Compiling 3 Scala sources to C:\PROJECTS\active\Helios\target\scala-2.11\classes... 
[error] missing or invalid dependency detected while loading class file 'package.class'. 
[error] Could not access type ScalaObject in package scala, 
[error] because it (or its dependencies) are missing. Check your build definition for 
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) 
[error] A full rebuild may help if 'package.class' was compiled against an incompatible version of scala. 
[error] missing or invalid dependency detected while loading class file 'Actor.class'. 
[error] Could not access type ScalaObject in package scala, 
[error] because it (or its dependencies) are missing. Check your build definition for 
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) 
[error] A full rebuild may help if 'Actor.class' was compiled against an incompatible version of scala. 
[error] C:\PROJECTS\active\Helios\src\main\scala\com\echostar\ese\helios\workers\NSPSG.scala:9: illegal inheritance; 
[error] self-type com.echostar.ese.helios.workers.NSPSG does not conform to akka.actor.Actor's selftype akka.actor.Actor 
[error] class NSPSG extends Actor { 
[error]     ^
[error] three errors found 
[error] (compile:compileIncremental) Compilation failed 
[error] Total time: 3 s, completed Apr 4, 2016 9:19:45 AM 

Мое главное приложение - это просто println. Это даже не вызов этого актера.

Я использую неправильную версию akka с scala 2.11? -Ylog-classpath не помогло

+1

Есть ли причина, по которой вы используете 2.0.2, а не 2.4.3 (текущая стабильная)? –

+0

экспериментирование, я пробовал использовать 2.4.0. Но я решил это. По какой-то причине он работает сейчас. Я поясню в своем ответе ниже ... – dlite922

ответ

0

Не знаю, что исправлено, но вот список вещей, которые я сделал, и проект компилируется сейчас.

  1. Изменен AKKA линия зависимостей для этого (добавляются двойным процента и изменил версию назад до 2.4)

    libraryDependencies ++= Seq(
        "com.typesafe.akka" %% "akka-actor" % "2.4.0" 
    ) 
    
  2. Удалена моя конфигурация Run и добавить его обратно. (Я думаю, что путь к главному показан как красный (недействительный), поэтому повторное его помогло решить его. Я изменил имя своего пакета, и я не думаю, что intelliJ хорошо заработал переименование в build-conf)

  3. Начато другое испытание проект из меню IntelliJ (Akka Main в Scala), и это потребовало немного загрузки всех зависимостей. Так может быть, мой проект нуждался в них и не загружал их?

  4. Удалены прокомментированные строки (удалены из полуколонии). Я не думаю, что это ничего, кроме полного раскрытия, технически я касался кода, хотя определение моего актера точно так же.

+0

Вы сделали опечатку в build.sbt: должно быть «com.typesafe.akka» %% «akka-actor». Не «com.typesafe.akka»% «акка-актер». «%%» автоматически добавляет суффикс версии scala в имя артефакта зависимости. –

Смежные вопросы