Impossibile creare la classe Scala su IntelliJ


122

Sto appena iniziando a imparare Scala. Ho installato il plugin Scala per IntelliJ e creato un nuovo progetto Scala. Ma quando faccio clic con il pulsante destro del mouse sulla cartella src per creare una nuova classe Scala, non è possibile farlo. Mi sto perdendo qualcosa?


1
Hai specificato Scala SDK? Dovrebbe funzionare se si imposta correttamente il progetto e si specifica l'SDK.
evan.oman

1
Ho provato a replicare lo stesso problema ma riesco a creare il file scala. Posso suggerirti una soluzione: crea un nuovo progetto e in scala seleziona il progetto sbt e poi all'interno di src.main crea un nuovo file scala. Spero che questo ti aiuti o puoi provare a RESETTARE le impostazioni di intellij.
Shiv4nsh

Come ha detto @ evan058, è l'SDK. Per qualche ragione, a volte IntelliJ non seleziona automaticamente scala sdk. E se non è configurato, questo accade.
Niks

Un'altra possibilità è che tu stia usando il percorso sbagliato per i sorgenti Scala. Dovrebbero entrare in src\main\scalao src\test\scala. Se lo hai sbtinstallato, puoi avviarlo nella directory del tuo progetto e invocare il comando inspect scalaSource, e ti mostrerà dove devono essere i sorgenti di Scala.
Haspemulator

Si prega di vedere i commenti all'interno di altre risposte. Uno spazio nel progetto potrebbe essere la ragione di questo errore.
villancikos

Risposte:


262

Fai clic destro sul tuo progetto, " Aggiungi supporto Framework " e scegli Scala framework, quindi facendo clic destro sui pacchetti puoi creare Scala Class.

Dopo questo, fate clic destro su src> Mark directory as> Sources Root.

Fare entrambe le cose dovrebbe risolvere il tuo problema!


7
Solo ora è possibile aggiungere script di scala ma non classi ?! Qualche idea?
cs0815

7
Ho lo stesso problema e non vedo Scala Framework nel menu Aggiungi Framework
Michael P

1
Guarda attentamente. La classe Scala è nella prima sezione, ma anche lo script in scala è nell'elenco
Alexandr

Anche questo passaggio funzionerà SOLO se hai aggiornato le impostazioni PROXY corrette in File> Impostazioni.
nanosoft

1
Ho installato i plug-in scala, ma l'opzione Scala framework non è a sinistra, solo Maven
acmoune

107

Ho capito, fai clic con il tasto destro su src> Contrassegna directory come> Sources Root.

Adesso riprova.


2
Grande! Combinare la tua risposta e la risposta migliore ha funzionato!
hzitoun

Dovevo fare sia questo che la risposta migliore!
Jsleshem

1
Questo dovrebbe essere il massimo.
hunzter

22

Ho appena avuto anche questo problema. Si è scoperto che IntelliJ non aveva contrassegnato il miosrc/main/scala cartella come una cartella "sorgente".

Per fare questo: Project Structure -> Modules -> fare clic con il pulsante destro del mouse sulla cartella e Mark as "Source"(blu)

Allo stesso modo la src/main/testcartella non è stata contrassegnata come cartella di prova. Sono stato in grado di aggiungere classi scala dopo che quelle cartelle sono state contrassegnate in modo appropriato.


Questo è corretto, anche se l'ho fatto in modo leggermente diverso (e più veloce) di seguito.
user1761806

8

Ho avuto questo problema ogni volta che ho creato un nuovo progetto con spazi nel nome. ad esempio "Hell Wev". L'uso di "HellWev" o simile come nome del progetto sembra funzionare bene


2
Ho anche avuto questo problema iniziando un nome di progetto con un numero. Dopo aver rinominato, tutto ha funzionato bene.
user3846506

Solo per aggiungere il mio grano di sale. Sì, uno spazio nella cartella del progetto crea questo comportamento.
villancikos

1
Ho avuto lo stesso problema e il commento di @ user3846506 è stata la risposta per me, ho ricreato il progetto senza un numero nel nome e la cartella scala era blu anziché grigia non appena il progetto si è aperto.
Shurikn

7

Fare clic con il tasto destro sulla cartella Src Scala :)

Animazione del clic destro su "Scala"


15
Il problema descritto è esattamente quello che stai mostrando. Nessuna classe Scala in quel menu. Questa animazione non è utile
Michael P,

3
L'animazione dimostra che i menu sono sensibili al contesto. Un clic destro sulla cartella "scala" offre la possibilità di selezionare "Scala Class"; fare clic con il tasto destro sulla cartella "src" non lo fa.
Keith Pinson

Quindi questo comportamento è normale e tutti i tutorial non sono aggiornati?
user1761806

@ user1761806 Non ne ho mai recensiti, quindi non saprei dirti se qualche tutorial non è aggiornato. A questo proposito, mi aspetto che questa risposta sui menu sensibili al contesto diventi obsoleta, ma a partire da InteliJ 2017.2 l'animazione è ancora illustrativa anche se l'interfaccia utente è cambiata.
Keith Pinson

2
L'animazione non è utile. Puoi sicuramente avere directory come / scala (e contrassegnare che ha Sources Root) e ancora New Scala Class non verrà visualizzata. La risposta corretta è di @Majico
Kumar Vaibhav

5

In IDEA 2016.2.5

Da un nuovo progetto SBT o Scala.

  • Apri struttura del progetto
  • Nella scheda Progetto aggiungi il tuo JDK (dovrebbe essere visibile anche nella scheda SDK)
  • In Global Libraries aggiungi Scala SDK.

Purtroppo solo aggiungerlo alla build.SBT non influisce sul comportamento dell'IDE.


5

Su IntelliJ IDE 2019.1 Ultimate, abilita FRAMEWORK Scala come queste schermate:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Grazie per l'aiuto :) Ha funzionato per me per IntelliJ 2019
Rajiv Singh,

Grazie per la risposta con le immagini ... Ha funzionato come Charm!
VIKAT

5

Ho avuto lo stesso problema e quello che ho fatto è stato fare clic con il pulsante destro del mouse sul progetto ---> quindi scegliere Aggiungi supporto Framework -> Nell'angolo sinistro c'era un elenco menzionato di Groovy, Kotlin, Maven e Scala .---> Dalla lista scelgo Scala ma ho ancora problemi perché librabry non è stato specificato ---> Ho cliccato su Crea e mi ha chiesto di scegliere la versione come avevo installato 2.11.12, l'ho scelta e ha iniziato a scaricarla. Una volta scaricato, ho selezionato Scala e il problema è stato risolto.


Grazie. Mi ha davvero aiutato.
Thiago Melo

4

Vai alla cartella Src e scegli Contrassegna come directory, quindi scegli l'opzione chiamata root di origine, che risolverebbe il tuo problema.


3

aggiungi libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.50"destinazione -> built.sbtfile che funziona per IntelliJ IDEA 2017


Questo ha funzionato per me in IntelliJ IDEA 2018.3, tranne per il fatto che ho cambiato il numero di versione in 1.1.1.
Evan Knowles

2
  1. Creato nuovo progetto gradle (java)
  2. Aggiungi il nuovo modulo "scala" in / src / main / e "Crea directory" come sorgente ...
  3. aggiunte dipendenze in 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

Nel mio caso dopo aver selezionato Sources Root non mi ha mostrato alcuna opzione Scala Class, quindi scelgo Generated Sources Root, fare clic con il tasto destro su src> Mark directory as> Generated Sources Root. Questo ha funzionato per me


1

Intellij per impostazione predefinita non raccoglie le dipendenze a volte. Dovrai creare un progetto sbt o maven separato e quindi importarlo in Intellij.

Se vuoi creare un progetto Java Scala Mixin puoi seguire questo post del blog . E poi importalo in Intellij.

O se stai solo cercando di imparare Scala.

Puoi scaricare questo modello base di Scala basato su esperti e importarlo in intellij e quindi continuare a lavorarci.

Nota: potrebbe essere necessario specificare le origini per il modulo nel file

Struttura del progetto -> scheda Moduli


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
Questo funzionerà quando crei un progetto con mavan framework, e in caso di SBT devi aggiungere il file build.sbt
Chetan Hirapara

1
@ChicksPatel Sì, funzionerebbe solo quando crei un progetto con un framework Maven. Poiché nella domanda non è stato menzionato alcun quadro specifico, ho pensato che la risposta potesse aiutare qualcuno.
Nikunj Kakadiya

1

Ho anche riscontrato lo stesso problema, le opzioni del file scala non erano visibili nell'editor di intellij Idea perché Scala SDK non era installato. Quindi ti sbarazzi di questo problema dopo aver installato SDK per Scala.


1
Dovrebbe essere un commento
eseguibile

1

Seguendo i passaggi seguenti risolti per me:

  • Aggiungi scala plug-in al tuo IDE Intellij (i plug-in possono essere aggiunti accedendo a File -> impostazioni -> plug-in)
  • Abilita il plugin scala
  • Riavvia IDE

0

Devi solo selezionare l'opzione "Pacchetto" invece di "Progetto" dal menu a discesa appena sopra il nome del progetto.


0

Ho riscontrato questo comportamento quando la cartella non è stata contrassegnata correttamente come cartella di origine (simbolo di cartella blu). In tal caso, fai semplicemente clic con il pulsante destro del mouse sull'intero progetto e scegli Apri impostazioni modulo dove puoi quindi contrassegnare la rispettiva cartella come origine: Impostazioni modulo in cui puoi selezionare src come cartella di origine


0

Ho avuto un problema simile e quello che ho fatto per risolverlo è stato semplicemente creare un pacchetto facendo clic con il tasto destro su src / main / scala. Una volta creato il pacchetto, fai clic con il pulsante destro del mouse su pacchetto e dovresti essere in grado di trovare l'opzione classe scala.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.