Невозможно создать класс Scala на IntelliJ


123

Я только начинаю изучать Scala. Я установил плагин Scala для IntelliJ и создал новый проект Scala. Но когда я щелкаю правой кнопкой мыши папку src, чтобы создать новый класс Scala, у меня нет возможности сделать это. Я что-то упускаю?


1
Вы указали Scala SDK? Он должен работать, если вы правильно настроили проект и указали SDK.
evan.oman

1
Я попытался воспроизвести ту же проблему, но мне удалось создать файл scala. Я могу предложить вам обходной путь: создайте новый проект и в scala выберите проект sbt, а затем внутри src.main создайте новый файл scala. Я надеюсь, что это поможет, или вы можете попробовать СБРОСИТЬ настройки intellij.
Shiv4nsh

Как сказал @ evan058, это SDK. По какой-то причине IntelliJ иногда не выбирает scala sdk автоматически. А если он не настроен, такое бывает.
Niks

Другая возможность состоит в том, что вы используете неправильный путь для источников Scala. Они должны войти в src\main\scalaили src\test\scala. Если вы sbtустановили, вы можете запустить его в каталоге своего проекта и вызвать команду inspect scalaSource, и она покажет вам, где должны быть исходные коды Scala.
Haspemulator

См. Комментарии в других ответах. Причиной этой ошибки может быть пробел в проекте.
villancikos

Ответы:


263

Щелкните правой кнопкой мыши свой проект, « Добавить поддержку платформы » и выберите платформу Scala, затем, щелкнув правой кнопкой мыши пакеты, вы можете создать класс Scala.

После этого нажмите правой кнопкой мыши на src> Mark directory as> Sources Root.

Выполнение обоих этих действий должно решить вашу проблему!


7
Теперь можно добавлять только скрипты Scala, но не классы ?! Любые идеи?
cs0815

7
У меня та же проблема, и я не вижу Scala Framework в меню «Добавить платформу»
Майкл П.

1
Смотри внимательно. Класс Scala находится в первом разделе, но скрипт Scala также находится в списке
Александр

Также этот шаг будет работать ТОЛЬКО в том случае, если вы обновили правильные настройки PROXY в меню File> Settings.
nanosoft 03

1
У меня установлены плагины scala, но слева нет опции Scala framework, только Maven
acmoune

107

Я понял это, щелкните правой кнопкой мыши на src> Отметить каталог как> Корень источников.

А теперь попробуйте еще раз.


2
Большой! Объединение вашего ответа и главного ответа помогло!
hzitoun

Я должен был сделать и этот, и главный ответ!
Jsleshem

1
Это должно быть сверху.
hunzter

22

У меня тоже была эта проблема. Оказалось, что IntelliJ не пометил мою src/main/scalaпапку как «исходную».

Для этого: Project Structure -> Modules ->щелкните правой кнопкой мыши папку и Mark as "Source"(синий)

Точно так же src/main/testпапка не была отмечена как тестовая. Я смог добавить классы scala после того, как эти папки были соответствующим образом отмечены.


Это правильно - хотя ниже я сделал это немного другим (и быстрее) способом.
user1761806

8

У меня возникала эта проблема каждый раз, когда я создавал новый проект с пробелами в имени. например, «Ад Вев». Использование "HellWev" или аналогичного имени в качестве названия проекта, кажется, работает нормально.


2
У меня также была проблема с запуском имени проекта с номера. После переименования все нормально заработало.
user3846506

Просто чтобы добавить свою скепсис. Да, такое поведение создается из-за пробела в папке проекта.
villancikos

1
Если бы та же проблема и комментарий @ user3846506 был для меня ответом, я воссоздал проект без номера в имени, и папка scala была синей, а не серой, как только проект открылся.
Shurikn

7

Щелкните правой кнопкой мыши папку Src Scala :)

Анимация щелчка правой кнопкой мыши "Scala"


15
Описанная проблема - это именно то, что вы показываете. В этом меню нет класса Scala. Эта анимация бесполезна
Майкл П.

3
Анимация демонстрирует, что меню контекстно-зависимые. Щелчок правой кнопкой мыши по папке «scala» предлагает возможность выбрать «Scala Class»; щелчок правой кнопкой мыши по папке "src" - нет.
Кейт Пинсон

Так это нормальное поведение и все руководства устарели?
user1761806

@ user1761806 Я никогда не просматривал ни одного, поэтому я не могу сказать вам, устарели ли какие-либо руководства. По этому поводу я ожидаю, что этот ответ о контекстно-зависимых меню устареет, но с InteliJ 2017.2 анимация по-прежнему является иллюстративной, хотя пользовательский интерфейс изменился.
Кейт Пинсон

2
Анимация не помогает. У вас определенно могут быть каталоги, такие как / scala (и пометить, что у них есть исходный корень), но новый класс Scala все равно не появится. Правильный ответ @Majico
Кумар Вайбхав

5

В IDEA 2016.2.5

Из нового проекта SBT или Scala.

  • Открыть структуру проекта
  • На вкладке Project добавьте свой JDK (он также должен быть виден на вкладке SDK)
  • В разделе «Глобальные библиотеки» добавьте Scala SDK.

К сожалению, простое добавление этого в вашу сборку. SBT не влияет на поведение IDE.


5

В IntelliJ IDE 2019.1 Ultimate включите FRAMEWORK Scala, как показано на следующих экранах:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь


Спасибо за помощь :) У меня это сработало для IntelliJ 2019
Раджив Сингх

Спасибо за ответ с изображениями ... Он работал как Charm!
VIKAT

5

У меня была та же проблема, и я щелкнул правой кнопкой мыши по проекту ---> Затем выберите Добавить поддержку платформы -> В левом углу был список, упомянутый Groovy, Kotlin, Maven и Scala. ---> Из списка я выбрал Scala, но проблема все еще возникла, потому что библиотека не была указана ---> Нажав «Создать», меня попросили выбрать версию, поскольку я установил 2.11.12, я выбрал ее, и она начала ее загружать. После загрузки я выбрал Scala, и проблема была исправлена.


Спасибо. Мне это действительно помогло.
Тьяго Мело

4

Перейдите в папку Src и выберите «Пометить как каталог», затем выберите опцию под названием «корень источника», которая решит вашу проблему.


3

добавить libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.50"в цель → built.sbtфайл, это работает для IntelliJ IDEA 2017


Это сработало для меня в IntelliJ IDEA 2018.3, за исключением того, что я изменил номер версии на 1.1.1.
Эван Ноулз

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> Отметить каталог как> Generated Sources Root. Это сработало для меня


1

Intellij по умолчанию время от времени не выбирает зависимости. Вам нужно будет создать отдельный проект sbt или maven, а затем импортировать его в Intellij.

Если вы хотите создать проект Java Scala Mixin, вы можете подписаться на это сообщение в блоге . А затем импортируйте его в Intellij.

Или если вы просто пытаетесь изучить Scala.

Вы можете загрузить этот стартовый шаблон Scala на основе 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 framework. Поскольку в вопросе не упоминалась конкретная структура, я подумал, что ответ может кому-то помочь.
Nikunj Kakadiya

1

Я также столкнулся с той же проблемой, параметры файла scala не были видны в редакторе intellij Idea, потому что не был установлен Scala SDK. Таким образом, вы избавитесь от этой проблемы после установки SDK для Scala.


1
Должен быть комментарий
исполняемый

1

После следующих шагов, которые были разрешены для меня:

  • Добавьте плагин scala в вашу Intellij IDE (плагины можно добавить, перейдя в Файл -> Настройки -> Плагины).
  • Включить плагин scala
  • Перезагрузите IDE

0

Вам просто нужно выбрать вариант «Пакет» вместо «Проект» в раскрывающемся меню прямо над названием вашего проекта.


0

Я испытал такое поведение, когда папка не была правильно помечена как исходная папка (синий символ папки). Если это так, просто щелкните правой кнопкой мыши весь проект и выберите « Открыть настройки модуля», где затем вы можете пометить соответствующую папку как источник: Настройки модуля, где вы можете выбрать src в качестве исходной папки.


0

У меня была аналогичная проблема, и для ее решения я просто создал пакет, щелкнув правой кнопкой мыши src / main / scala. После создания пакета щелкните пакет правой кнопкой мыши, и вы сможете найти параметр класса scala.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.