Nie można utworzyć klasy Scala w IntelliJ


123

Dopiero zaczynam uczyć się Scala. Zainstalowałem wtyczkę Scala dla IntelliJ i stworzyłem nowy projekt Scala. Ale kiedy kliknę prawym przyciskiem myszy folder src, aby utworzyć nową klasę Scala, nie ma takiej opcji. Czy coś mi brakuje?


1
Czy określono zestaw SDK Scala? Powinno działać, jeśli poprawnie skonfigurujesz projekt i określisz SDK.
evan.oman

1
Próbowałem zreplikować ten sam problem, ale mogę utworzyć plik scala. Mogę zaproponować ci obejście: Stwórz nowy projekt iw scali wybierz projekt sbt, a następnie w src.main utwórz nowy plik scala. Mam nadzieję, że to pomoże lub możesz spróbować ZRESETOWAĆ ustawienia intellij.
Shiv4nsh

Jak powiedział @ evan058, to SDK. Z jakiegoś powodu IntelliJ czasami nie wybiera automatycznie scala sdk. A jeśli nie jest skonfigurowany, dzieje się tak.
Niks

Inną możliwością jest to, że używasz złej ścieżki dla źródeł Scala. Powinni wejść do src\main\scalalub src\test\scala. Jeśli sbtzainstalowałeś, możesz uruchomić go w inspect scalaSourcekatalogu swojego projektu i wywołać polecenie , a to pokaże ci, gdzie muszą znajdować się źródła Scala.
Haspemulator

Zobacz komentarze w innych odpowiedziach. Przyczyną tego błędu może być spacja w projekcie.
villancikos

Odpowiedzi:


263

Kliknij prawym przyciskiem myszy swój projekt, „ Dodaj obsługę struktury” i wybierz strukturę Scala, a następnie kliknij prawym przyciskiem pakiety, aby utworzyć klasę Scala.

Następnie kliknij prawym przyciskiem myszy src> Mark directory as> Sources Root.

Wykonanie obu tych czynności powinno rozwiązać problem!


7
Tylko czy można teraz dodawać skrypty Scala, ale żadnych klas ?! Jakieś pomysły?
cs0815

7
Mam ten sam problem i nie widzę Scala Framework w menu Add Framework
Michael P

1
Przyjrzyj się uważnie. Klasa Scala znajduje się w pierwszej sekcji, ale skrypt scala jest również na liście
Alexandr

Ten krok będzie działał TYLKO po zaktualizowaniu poprawnych ustawień PROXY w menu Plik> Ustawienia.
nanosoft

1
Mam zainstalowane wtyczki scala, ale opcja frameworka Scala nie jest po lewej stronie, tylko Maven
acmoune

107

Rozgryzłem to, kliknij prawym przyciskiem myszy src> Oznacz katalog jako> Źródła Root.

Teraz spróbuj ponownie.


2
Wspaniały! Połączenie Twojej odpowiedzi i najwyższej odpowiedzi załatwiło sprawę!
hzitoun

Musiałem zrobić zarówno to, jak i najlepszą odpowiedź!
Jsleshem

1
To powinno być najlepsze.
hunzter

22

Właśnie miałem ten problem. Okazało się, że IntelliJ nie oznaczył mojego src/main/scalafolderu jako folderu „źródłowego”.

Aby to zrobić: Project Structure -> Modules ->kliknij folder prawym przyciskiem myszy i Mark as "Source"(niebieski)

Podobnie src/main/testfolder nie został oznaczony jako folder testowy. Po odpowiednim zaznaczeniu tych folderów udało mi się dodać klasy scala.


To prawda - chociaż zrobiłem to nieco inaczej (i szybciej) niżej.
user1761806

8

Miałem ten problem za każdym razem, gdy tworzyłem nowy projekt ze spacjami w nazwie. np. „Hell Wev”. Wydaje się, że użycie nazwy „HellWev” lub podobnej jako nazwy projektu działa dobrze


2
Miałem też ten problem, zaczynając nazwę projektu od numeru. Po zmianie nazwy wszystko działało dobrze.
user3846506

Tylko po to, żeby dodać moje ziarno soli. Tak, przestrzeń w folderze projektu powoduje takie zachowanie.
villancikos

1
Miałem ten sam problem i odpowiedzią był dla mnie komentarz @ user3846506, odtworzyłem projekt bez numeru w nazwie, a folder scala był niebieski zamiast szarego, gdy tylko projekt został otwarty.
Shurikn,

7

Kliknij prawym przyciskiem myszy folder Src Scala :)

Animacja kliknięcia prawym przyciskiem myszy „Scala”


15
Opisany problem jest dokładnie tym, co pokazujesz. Brak klasy Scala w tym menu. Ta animacja nie jest pomocna
Michael P

3
Animacja pokazuje, że menu są kontekstowe. Kliknięcie prawym przyciskiem folderu „scala” umożliwia wybranie opcji „Scala Class”; kliknięcie prawym przyciskiem myszy folderu „src” nie.
Keith Pinson

Czy to normalne zachowanie i wszystkie samouczki są nieaktualne?
user1761806

@ user1761806 Nigdy nie recenzowałem żadnego, więc nie mogłem Ci powiedzieć, czy jakiekolwiek samouczki są nieaktualne. Jeśli chodzi o ten temat, spodziewam się, że ta odpowiedź dotycząca menu kontekstowych stanie się nieaktualna, ale od InteliJ 2017.2 animacja jest nadal ilustracyjna, mimo że interfejs użytkownika się zmienił.
Keith Pinson

2
Animacja nie jest pomocna. Zdecydowanie możesz mieć katalogi takie jak / scala (i oznacz, że ma katalog źródłowy), a mimo to Nowa klasa Scala nie pojawi się. Prawidłowa odpowiedź to @Majico
Kumar Vaibhav,

5

W IDEA 2016.2.5

Z nowego projektu SBT lub Scala.

  • Otwórz strukturę projektu
  • Na karcie Projekt dodaj swój JDK (powinien być również widoczny na karcie SDK)
  • W obszarze Biblioteki globalne dodaj zestaw SDK Scala.

Niestety samo dodanie tego do kompilacji.SBT nie ma wpływu na zachowanie IDE.


5

W IntelliJ IDE 2019.1 Ultimate włącz FRAMEWORK Scala, jak na tych ekranach:

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj


Dzięki za pomoc :) U mnie zadziałało na IntelliJ 2019
Rajiv Singh

Dzięki za odpowiedź z obrazami ... Działa jak urok!
VIKAT

5

Miałem ten sam problem i to, co zrobiłem, to kliknięcie prawym przyciskiem myszy na projekcie ---> Następnie wybierz Dodaj obsługę struktury -> W lewym rogu znajdowała się lista wymienionych Groovy, Kotlin, Maven i Scala. ---> Z listy wybrałem Scalę, ale nadal miałem problem, ponieważ nie określono librabry ---> Kliknąłem na Utwórz i poprosił mnie o wybranie wersji, tak jak zainstalowałem 2.11.12, wybrałem ją i zacząłem ją pobierać. Po pobraniu wybrałem Scala i problem został rozwiązany.


Dziękuję Ci. Naprawdę mi pomogło.
Thiago Melo

4

Przejdź do folderu Src i wybierz opcję Oznacz jako katalog, a następnie wybierz opcję o nazwie źródłowy katalog główny, która rozwiąże problem.


3

dodaj libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.50"w celu -> built.sbtplik działa dla IntelliJ IDEA 2017


To zadziałało dla mnie w IntelliJ IDEA 2018.3, z wyjątkiem tego, że zmieniłem numer wersji na 1.1.1.
Evan Knowles,

2
  1. Utworzono nowy projekt gradle (java)
  2. Dodaj nowy moduł "scala" do / src / main / i "Utwórz katalog" jako źródło ...
  3. dodane zależności do build.gradle:

    group 'example-scala'
    version '1.0-SNAPSHOT'
    
    apply plugin: 'java'
    apply plugin: 'scala'
    
    sourceCompatibility = 1.8
    
    repositories {
         mavenCentral()
    }
    
    dependencies {
       compile 'org.scala-lang:scala-library:2.12.6'
       testCompile 'org.scalatest:scalatest_2.11:3.0.5'
       testRuntime 'org.scala-lang.modules:scala-xml_2.11:1.0.6'
       testCompile group: 'junit', name: 'junit', version: '4.12'
    
    } 

2

W moim przypadku po wybraniu Sources Root nie pokazała mi żadnej opcji Scala Class, więc wybieram Generated Sources Root, klikam prawym przyciskiem na src> Mark directory as> Generated Sources Root. To zadziałało dla mnie


1

Intellij domyślnie nie pobiera czasami zależności. Musisz utworzyć osobny projekt sbt lub maven, a następnie zaimportować go do Intellij.

Jeśli chcesz stworzyć projekt Java Scala Mixin, możesz śledzić ten wpis na blogu . A następnie zaimportuj go do Intellij.

Lub jeśli po prostu próbujesz nauczyć się Scala.

Możesz pobrać ten szablon startowy Scala oparty na maven i zaimportować go do intellij, a następnie kontynuować pracę nad nim.

Uwaga: może być konieczne określenie źródeł modułu w pliku

Struktura projektu -> zakładka Moduły


1
    You can add the scala maven plugin reference in the pom.xml as below 

 <build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <testSourceDirectory>src/test/scala</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <scalaCompatVersion>2.11</scalaCompatVersion>
                    <scalaVersion>2.11.8</scalaVersion>
                </configuration>
            </plugin>
        </plugins>
    </build>

    Once you do this and build you will be able to see the option of the scala class.

1
Ten zadziała, gdy będziesz tworzył projekt z frameworkiem mavan, aw przypadku SBT musisz dodać plik build.sbt
Chetan Hirapara

1
@ChicksPatel Tak, to zadziała, gdy tworzysz projekt tylko z frameworkiem maven. Ponieważ w pytaniu nie wymieniono żadnych konkretnych ram, pomyślałem, że odpowiedź może komuś pomóc.
Nikunj Kakadiya

1

Napotkałem również ten sam problem, opcje pliku scala nie były widoczne w edytorze Intellij Idea, ponieważ Scala SDK nie został zainstalowany. Więc pozbywasz się tego problemu po zainstalowaniu SDK dla Scala.


1
Powinien być komentarz
plik wykonywalny

1

Poniższe kroki rozwiązały za mnie:

  • Dodaj wtyczkę scala do swojego IDE Intellij (wtyczki można dodać, przechodząc do Plik -> ustawienia -> wtyczki)
  • Włącz wtyczkę scala
  • Zrestartuj IDE

0

Wystarczy wybrać opcję „Pakiet” zamiast „Projekt” z menu rozwijanego tuż nad nazwą projektu.



0

Miałem podobny problem i aby go rozwiązać, po prostu utworzyłem pakiet, klikając prawym przyciskiem myszy src / main / scala. Po utworzeniu pakietu kliknij prawym przyciskiem myszy pakiet i powinieneś być w stanie znaleźć opcję klasy scala.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.