Intellij кампіляваць няўдачы: «ужо вызначаны як»

У мяне SCALA праект, які кампілюецца, запускаецца і тэсты штраф пры выкарыстанні SBT з каманднага радка. Тым не менш, пры стварэнні праекта ў IntelliJ, здаецца, кожны клас у праекце мае гэтую памылку ў часопісе падзей, у выніку чаго да выпадзення зборкі:

SendCommandToService is already defined as case class SendCommandToService
case class SendCommandToService(service: String, commandName: String, keys: Array[String], values: Array[String])
       ^
39
Вы спрабавалі Build -> Rebuild Project?
дададзена аўтар drexin, крыніца
так, я спрабаваў. Дзякуй хоць.
дададзена аўтар Nick, крыніца

8 адказы

For me, the reason is that both myproject/src and myproject/src/main/scala are marked as Source. So intellij failed to build myproject/src/main/scala due to above errors. Unmark Source from myproject/src (in intellij, File->Project structure, select myproject Module, select src folder in Sources Tab, remove it from Source in the "Add Content Root" pane) solved the problem. Hope this helps.

84
дададзена
Так, гэта здарылася са мной у Scala + Java змешанага праекта.
дададзена аўтар expert, крыніца
Я меў гэтую праблему, таму што я вызначыў задачу ў SBT для стварэння крыніцы; IntelliJ не ведае, каб запусціць гэта падчас кампіляцыі, або той факт, што згенераваны код знаходзіцца пад мэтай/Scala-2,11/src_managed, так што я павінен дадаць, што ў якасці зыходнага шляху ўручную, і пры гэтым зрабіў памылку маркіроўкі як бацька і укладзеная тэчка ў якасці крыніцы, як апісана вышэй.
дададзена аўтар Luciano, крыніца
Гэта здарылася, калі я пераехаў мой праект з Src у SRC/галоўная/</лесвіцу кода>.
дададзена аўтар Jonathan Landrum, крыніца
ды, выдаліць .../SRC з крыніцы вырашыць гэтую праблему.
дададзена аўтар evan912, крыніца
Гэта вырашыла маё problem..thanks!
дададзена аўтар Sabyasachi, крыніца

Гэта азначае, што ёсць два скампіляваныя класаў з аднолькавым пакетам і імем класа, знойдзеных у вашым шляху да класаў. Адзін складзены SBT, адзін складзены IntelliJ.

Адзін з наступных павінны быць у стане вырашыць гэтую праблему:

  1. try to generate IntelliJ .iml file with sbt-idea rather than import directly.
  2. sbt clean before click Build -> Rebuild in IntelliJ
  3. when rebuilding with IntelliJ, make sure sbt is not running
26
дададзена
Выкарыстанне SBT і Play па-за IntelliJ, upvoted для «чыстай» SBT, які, нарэшце, зрабіў трук для мяне (хоць у нейкі момант я зрабіў паніжэнне версіі Scala 2.11 -> 2.10.4, а).
дададзена аўтар John Lockwood, крыніца
@JohnLockwood я да гэтага часу ёсць гэтая праблема, я адключыў кэш, зрабіць SBT чысты , SBT кампіляцыі і да гэтага часу, мой просты скрыпт, які прымае «ужо вызначаны як аб'ект» .. Я нават перайменаваць аб'ект і мой IntelliJ ўсё яшчэ дае мне магчымасць запусціць папярэдні аб'ект.
дададзена аўтар ypriverol, крыніца

У мяне была такая ж праблема і @Max правоў, існуе канфлікт з скампіляваных класаў, але рашэнне пры ўмове, не працуе для мяне. Аказваецца, што я выкарыстаў SBT-ідэю для стварэння структуры праекта IDEA ў якасці абыходнага шляху ў якасці IntelliJ IDEA 14 + убудова Scala памылка на імпарт SBT, які яшчэ не фіксаваны ў той час я пішу гэта.

Для таго, каб выправіць гэта, я павінен быў выдаліць src_managed/галоўны/кантролер , які быў у канфлікце з src_managed/галоўны у наладах модуля з-за SBT-ідэя памылка . Так двойчы праверце папкі зыходнага модуля і пераканайцеся, што ў вас няма подпапок ў канфлікце з бацькоўскай тэчкай ўжо абвешчанай у якасці крыніцы.

5
дададзена

У мяне быў падобны пытанне неаднаразова і ў ідэі і без: просты SBT.

Аказалася, што CVS захоўвае копіі некаторых <�моцны> *. SCALA файлы ў падкаталогу CVS/Base , які, відаць SBT спрабуе скампіляваць. Праблема сышла, калі я выдаліў падкаталогі CVS.

2
дададзена

You need to change "Settings -> Build,Execution,Deployment -> Scala Compiler -> Compile order" from "Mixed" to "Java then Scala". If you have compile the project previous, you should first run "sbt clean".

1
дададзена

У маім выпадку праблема была Protobuf <�моцны> Ідэя убудова :

  1. Выдаліце ​​ідэю protbuf убудова.
  2. Зачыніць Idea
  3. Выдаліць усе тэчкі, звязаныя з ідэяй (.idea і .idea_modules)
  4. Open Idea і імпарт праект яшчэ раз.
0
дададзена

Пасля SBT кампіляцыі Я павінен адзначыць тэчку як згенераванага Крыніцы Root таму што мне патрэбныя гэтыя файлы для кампіляцыі.

0
дададзена

Я проста дадаць міну ў спіс у выпадку, калі хто-то зрабіў гэта пачаткоўцу памылку: я часова «выратаваў мой прагрэс», выканаўшы ф Foo.scala Foo-save.scala , забываючы, што SBT будзе спрабаваць сабраць усе .scala файлы ў каталогу.

(Я не ведаю, я мяркую, што я думаў аб мовах праграмавання, у якіх любы файл відавочна не ўключыць d быў праігнараваны ...)

Вядома, так як асноўны файл і файл «часовае рэзервовае капіраванне» вызначаны тыя ж класы ... так.

0
дададзена