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?

Saurav Sircar
źródło
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!

Majico
źródło
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.

user1761806
źródło
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.

Mike Pors
źródło
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

cwadeevans
źródło
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”

Keith Pinson
źródło
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.

Eric Aldinger
źródło
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

Claudio
źródło
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.

Christina Sebastian
źródło
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.

svk 041994
źródło
3

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

techie95
źródło
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'
    
    } 
AlexPes
źródło
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

GANESH CHOKHARE
źródło
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

Vishnu667
źródło
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.
Nikunj Kakadiya
źródło
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.

Vishnu Kant Tripathi
źródło
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
saikumar18
źródło
0

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

Zero
źródło
0

Wystąpiło to zachowanie, gdy folder nie został poprawnie oznaczony jako folder źródłowy (niebieski symbol folderu). Jeśli tak jest, po prostu kliknij prawym przyciskiem myszy cały projekt i wybierz Otwórz ustawienia modułu, gdzie możesz następnie zaznaczyć odpowiedni folder jako źródło: Ustawienia modułu, w którym możesz wybrać src jako folder źródłowy

Susie
źródło
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.

Waseem Hawaldar
źródło