ไม่สามารถสร้างคลาส Scala บน IntelliJ


123

ฉันเพิ่งเริ่มเรียนรู้สกาล่า ฉันได้ติดตั้งปลั๊กอิน Scala สำหรับ IntelliJ และสร้างโครงการ Scala ใหม่ แต่เมื่อฉันคลิกขวาที่โฟลเดอร์ src เพื่อสร้างคลาส Scala ใหม่จะไม่มีตัวเลือกให้ทำ ฉันพลาดอะไรไปรึเปล่า?


1
คุณได้ระบุ Scala SDK หรือไม่ ควรใช้งานได้หากคุณตั้งค่าโครงการอย่างถูกต้องและระบุ SDK
evan.oman

1
ฉันพยายามจำลองปัญหาเดียวกัน แต่ฉันสามารถสร้างไฟล์สกาล่าได้ ฉันสามารถแนะนำวิธีแก้ปัญหาให้คุณ: สร้างโครงการใหม่และใน scala เลือกโครงการ sbt จากนั้นภายใน src.main สร้างไฟล์สกาล่าใหม่ ฉันหวังว่าจะช่วยได้หรือคุณสามารถลองรีเซ็ตการตั้งค่าของ intellij
Shiv4nsh

เช่นเดียวกับที่ @ evan058 กล่าวว่าเป็น SDK ด้วยเหตุผลบางประการ IntelliJ ไม่เลือก scala sdk โดยอัตโนมัติในบางครั้ง และหากไม่ได้กำหนดค่าไว้สิ่งนี้จะเกิดขึ้น
Niks

ความเป็นไปได้อีกประการหนึ่งคือคุณใช้เส้นทางที่ไม่ถูกต้องสำหรับแหล่งที่มาของ Scala พวกเขาควรจะไปลงหรือsrc\main\scala src\test\scalaหากคุณsbtติดตั้งไว้คุณสามารถเปิดใช้งานได้ใน Project dir ของคุณและเรียกใช้คำสั่งinspect scalaSourceและจะแสดงให้คุณเห็นว่าแหล่งที่มาของ Scala ต้องอยู่ที่ใด
Haspemulator

โปรดดูความคิดเห็นในคำตอบอื่น ๆ ช่องว่างในโครงการอาจเป็นสาเหตุของข้อผิดพลาดนี้
villancikos

คำตอบ:


263

คลิกขวาที่โปรเจ็กต์ของคุณ " Add Framework support " และเลือก Scala framework จากนั้นคลิกขวาที่แพ็กเกจที่คุณสามารถสร้าง Scala Class ได้

หลังจากนี้คลิกขวาบนsrc> >Mark directory asSources Root

การทำทั้งสองอย่างนี้จะช่วยแก้ปัญหาของคุณได้!


7
ตอนนี้สามารถเพิ่มสคริปต์สกาล่าได้ แต่ไม่มีคลาส?! ความคิดใด ๆ ?
cs0815

7
ฉันมีปัญหาเดียวกันและฉันไม่เห็น Scala Framework ในเมนูเพิ่มกรอบ
Michael P

1
ดูอย่างระมัดระวัง. คลาส Scala อยู่ในส่วนแรก แต่สคริปต์ scala ก็อยู่ในรายการเช่นกัน
Alexandr

ขั้นตอนนี้จะใช้ได้ผลก็ต่อเมื่อคุณอัปเดตการตั้งค่า PROXY ที่ถูกต้องในไฟล์> การตั้งค่า
nanosoft

1
ฉันติดตั้งปลั๊กอิน scala แล้ว แต่ตัวเลือกกรอบ Scala ไม่ได้อยู่ทางซ้ายมีเพียง Maven
acmoune

107

ฉันคิดออกแล้วคลิกขวาที่ src> ทำเครื่องหมายไดเรกทอรีเป็น> Sources Root

ตอนนี้ลองอีกครั้ง


2
ที่ดี! การรวมคำตอบของคุณและคำตอบยอดนิยมนั้นเป็นเคล็ดลับ!
hzitoun

ฉันต้องทำทั้งนี้และคำตอบด้านบน!
Jsleshem

1
นี่ควรเป็นอันดับต้น ๆ
hunzter

22

ฉันเพิ่งมีปัญหานี้เช่นกัน ปรากฎว่า IntelliJ ไม่ได้ทำเครื่องหมายsrc/main/scalaโฟลเดอร์ของฉันเป็นโฟลเดอร์ "ต้นทาง"

ทำได้โดยProject Structure -> Modules ->คลิกขวาที่โฟลเดอร์และMark as "Source"(สีน้ำเงิน)

ในทำนองเดียวกันsrc/main/testโฟลเดอร์ไม่ได้ถูกทำเครื่องหมายเป็นโฟลเดอร์ทดสอบ ฉันสามารถเพิ่มคลาส scala ได้หลังจากที่โฟลเดอร์เหล่านั้นถูกทำเครื่องหมายอย่างเหมาะสม


นี่ถูกต้อง - แม้ว่าฉันจะทำวิธีที่แตกต่างออกไปเล็กน้อย (และเร็วกว่า) ด้านล่าง
user1761806

8

ฉันมีปัญหานี้ทุกครั้งที่สร้างโปรเจ็กต์ใหม่โดยมีช่องว่างในชื่อ เช่น "Hell Wev" การใช้ "HellWev" หรือคล้ายกับชื่อโปรเจ็กต์ดูเหมือนจะใช้ได้ดี


2
ฉันยังมีปัญหานี้ในการเริ่มต้นชื่อโครงการด้วยหมายเลข หลังจากเปลี่ยนชื่อแล้วทุกอย่างก็ใช้ได้ดี
user3846506

เพียงแค่เติมเกลือเม็ดของฉัน ใช่ช่องว่างในโฟลเดอร์โครงการจะสร้างลักษณะการทำงานนี้
villancikos

1
มีปัญหาเดียวกันและความคิดเห็นของ @ user3846506 คือคำตอบสำหรับฉันฉันสร้างโปรเจ็กต์ใหม่โดยไม่มีตัวเลขในชื่อและโฟลเดอร์สกาล่าเป็นสีน้ำเงินแทนที่จะเป็นสีเทาทันทีที่เปิดโปรเจ็กต์
Shurikn

7

คลิกขวาที่โฟลเดอร์Src Scala :)

ภาพเคลื่อนไหวของการคลิกขวา "Scala"


15
ปัญหาที่อธิบายคือสิ่งที่คุณกำลังแสดง ไม่มีคลาส Scala ในเมนูนั้น ภาพเคลื่อนไหวนี้ไม่มีประโยชน์
Michael P

3
ภาพเคลื่อนไหวแสดงให้เห็นว่าเมนูมีความอ่อนไหวตามบริบท คลิกขวาที่โฟลเดอร์ "scala" จะมีตัวเลือกให้เลือก "Scala Class"; คลิกขวาที่โฟลเดอร์ "src" ไม่ได้
Keith Pinson

พฤติกรรมปกติและแบบฝึกหัดทั้งหมดนี้ล้าสมัยหรือไม่
user1761806

@ user1761806 ฉันไม่เคยตรวจสอบใด ๆ ดังนั้นฉันจึงไม่สามารถบอกคุณได้ว่าบทเรียนใดล้าสมัย ในหัวข้อนั้นฉันคาดว่าคำตอบนี้เกี่ยวกับเมนูตามบริบทจะล้าสมัย แต่ใน InteliJ 2017.2 ภาพเคลื่อนไหวยังคงเป็นภาพประกอบแม้ว่า UI จะเปลี่ยนไป
Keith Pinson

2
ภาพเคลื่อนไหวไม่เป็นประโยชน์ แน่นอนคุณสามารถมีไดเร็กทอรีเช่น / scala (และทำเครื่องหมายว่ามี Sources Root) และ New Scala Class จะไม่ปรากฏขึ้น คำตอบที่ถูกต้องคือโดย @Majico
Kumar Vaibhav

5

ใน IDEA 2016.2.5

จากโครงการ SBT หรือ Scala ใหม่

  • เปิดโครงสร้างโครงการ
  • บนแท็บโครงการเพิ่ม JDK ของคุณ (ควรจะปรากฏในแท็บ SDK ด้วย)
  • ภายใต้ Global Libraries ให้เพิ่ม Scala SDK

น่าเศร้าที่เพิ่มสิ่งนี้ลงในงานสร้างของคุณ SBT ไม่ส่งผลกระทบต่อพฤติกรรม IDE


5

ใน IntelliJ IDE 2019.1 Ultimate ให้เปิดใช้งาน FRAMEWORK Scala เช่นหน้าจอนี้:

ใส่คำอธิบายภาพที่นี่

ใส่คำอธิบายภาพที่นี่

ใส่คำอธิบายภาพที่นี่


ขอบคุณสำหรับความช่วยเหลือ :) มันได้ผลสำหรับฉันสำหรับ IntelliJ 2019
Rajiv Singh

ขอบคุณสำหรับคำตอบเกี่ยวกับรูปภาพ ... มันใช้งานได้เหมือน Charm!
VIKAT

5

ฉันมีปัญหาเดียวกันและสิ่งที่ฉันทำคือคลิกขวาที่โครงการ ---> จากนั้นเลือกเพิ่มการสนับสนุนกรอบงาน -> ที่มุมซ้ายมือมีรายการที่กล่าวถึง Groovy, Kotlin, Maven และ Scala -> จากรายการฉันเลือก Scala แต่ยังคงมีปัญหาเนื่องจากไม่ได้ระบุ librabry ---> คลิกที่สร้างและขอให้ฉันเลือกเวอร์ชันตามที่ฉันติดตั้ง 2.11.12 ฉันเลือกและเริ่มดาวน์โหลด เมื่อดาวน์โหลดแล้วฉันเลือก Scala และปัญหาได้รับการแก้ไขแล้ว


ขอบคุณ. มันช่วยฉันได้จริงๆ
Thiago Melo

4

ไปที่โฟลเดอร์ Src แล้วเลือก Mark as Directory จากนั้นเลือกตัวเลือกที่เรียกว่า source root ซึ่งจะช่วยแก้ปัญหาของคุณได้


3

เพิ่ม libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.50"ในbuilt.sbtไฟล์target -> ซึ่งใช้ได้กับ IntelliJ IDEA 2017


สิ่งนี้ใช้ได้ผลสำหรับฉันใน IntelliJ IDEA 2018.3 ยกเว้นฉันเปลี่ยนหมายเลขเวอร์ชันเป็น1.1.1.
Evan Knowles

2
  1. สร้างโครงการ gradle ใหม่ (java)
  2. เพิ่มโมดูลใหม่ "scala" ใน / src / main / และ "Make Directory" เป็นซอร์ส ...
  3. เพิ่มการอ้างอิงลงใน 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

ในกรณีของฉันหลังจากเลือก Sources Root มันไม่ได้แสดงตัวเลือก Scala Class ใด ๆ ให้ฉันจากนั้นฉันเลือก Generated Sources Root คลิกขวาที่ src> Mark directory เป็น> Generated Sources Root สิ่งนี้ได้ผลสำหรับฉัน


1

Intellij โดยค่าเริ่มต้นจะไม่รับการอ้างอิงในบางครั้ง คุณจะต้องสร้างโปรเจ็กต์ sbt หรือ maven แยกจากนั้นจึงนำเข้าสู่ Intellij

หากคุณต้องการสร้างโปรเจ็กต์ Java Scala Mixin คุณสามารถติดตามบล็อกโพสต์นี้ได้ แล้วนำเข้าใน Intellij

หรือถ้าคุณแค่พยายามเรียนรู้ Scala

คุณสามารถดาวน์โหลดเทมเพลต Scala Starter ที่ใช้ maven และนำเข้าใน intellij จากนั้นดำเนินการต่อ

หมายเหตุ: คุณอาจต้องระบุแหล่งที่มาสำหรับโมดูลในไฟล์

โครงสร้างโครงการ -> แท็บโมดูล


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
สิ่งนี้จะใช้งานได้เมื่อคุณสร้างโครงการด้วย mavan framework และในกรณีของ SBT คุณได้เพิ่มไฟล์ build.sbt
Chetan Hirapara

1
@ChicksPatel ใช่มันจะใช้ได้เมื่อคุณสร้างโปรเจ็กต์ด้วยเฟรมเวิร์ก maven เท่านั้น เนื่องจากไม่มีการกล่าวถึงกรอบเฉพาะในคำถามฉันจึงคิดว่าคำตอบอาจช่วยใครบางคนได้
Nikunj Kakadiya

1

ฉันประสบปัญหาเดียวกันเช่นกันตัวเลือกไฟล์สกาล่าไม่ปรากฏในตัวแก้ไขไอเดีย intellij เนื่องจากไม่ได้ติดตั้ง Scala SDK ดังนั้นคุณจึงกำจัดปัญหานี้หลังจากติดตั้ง SDK สำหรับ Scala


1
ควรเป็นความคิดเห็น
ปฏิบัติการ

1

ทำตามขั้นตอนด้านล่างได้รับการแก้ไขสำหรับฉัน:

  • เพิ่มปลั๊กอินscalaใน Intellij IDE ของคุณ (สามารถเพิ่มปลั๊กอินได้โดยไปที่ไฟล์ -> การตั้งค่า -> ปลั๊กอิน)
  • เปิดใช้งานปลั๊กอินสกาล่า
  • รีสตาร์ท IDE

0

คุณเพียงแค่ต้องเลือก 'แพ็คเกจ' แทนตัวเลือก 'โครงการ' จากเมนูแบบเลื่อนลงที่อยู่เหนือชื่อโครงการของคุณ


0

ฉันพบพฤติกรรมนี้เมื่อโฟลเดอร์ไม่ถูกทำเครื่องหมายเป็นโฟลเดอร์ต้นทางอย่างถูกต้อง (สัญลักษณ์โฟลเดอร์สีน้ำเงิน) หากเป็นเช่นนั้นให้คลิกขวาที่โปรเจ็กต์ทั้งหมดแล้วเลือกOpen Module Settingsจากนั้นคุณสามารถทำเครื่องหมายโฟลเดอร์ที่เกี่ยวข้องเป็น source: การตั้งค่าโมดูลที่คุณสามารถเลือก src เป็นโฟลเดอร์ Source


0

ฉันมีปัญหาที่คล้ายกันและสิ่งที่ฉันทำเพื่อแก้ไขคือสร้างแพ็คเกจโดยคลิกขวาที่ src / main / scala เมื่อสร้างแพ็คเกจแล้วให้คลิกขวาที่แพ็คเกจและคุณจะพบตัวเลือกคลาส scala

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.