Подтвердить что ты не робот

Имя пакета не соответствует пути к файлу - IntelliJ

Я пытаюсь импортировать проект из VCS (ну, я делаю это в первый раз на самом деле), и это моя (импортированная) структура проекта:

The file structure

BTW. этот экран создается после многих попыток изменения свойств этих каталогов (в их контекстных меню).

В этих исходных файлах "я имею следующую ошибку:

The error in the editor

Одно время он ничего не имел против badugi.client, но сообщал об этой ошибке только в badugi.server. Я совершенно не знаю, как это работает...

Также классы в тех же каталогах не видят друг друга.

Error

Это код из класса ClientWorker, который находится (как вы видите на первом изображении) в том же каталоге, что и Server, поэтому он должен знать, что такое Server.

Я уверен, что этот код хорошо работал в моей дружественной среде IDE. Как настроить IntelliJ, чтобы он работал?

4b9b3361

Ответ 1

Судя по структуре каталогов, у вас есть два пакета клиент и сервер, но код ожидает пакеты badugi.client и badugi.server.

Вот как это исправить:

  • Поместите курсор на подчеркнутый оператор пакета (package badugi.server)
  • Хит ALT + ENTER
  • Выберите опцию Переместить в пакет badugi.server. Это автоматически исправит вашу структуру каталогов в соответствии с объявленным пакетом

или

  • Щелкните правой кнопкой мыши src в проводнике проекта.
  • Выберите Новый/Пакет и создайте пакет badugi
  • Выберите пакеты клиента и сервера и перетащите их в пакет badugi.

Ответ 2

У меня была такая же проблема, и я исправил ее, изменив файл моего проекта .iml:

From:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src/wrong/entry/here" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>

To:

<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>

Как только папка пакета была указана в качестве корневого исходного каталога при импорте этого проекта.

Ответ 3

Я видел эту ошибку несколько раз, и я всегда мог ее решить, правильно определяя настройки модуля проекта. В IntelliJ щелкните правой кнопкой мыши проект верхнего уровня → "Открыть параметры модуля". Это должно открыть окно со всей структурой проекта и содержимым, идентифицированным как "Папки-источники", "Папки тестовых источников" и т.д. Убедитесь, что они правильно установлены. Для "исходных папок" убедитесь, что папка - это ваш src/или src/java (или независимо от вашего исходного языка), так как это может быть

Ответ 4

Добавьте это в pom.xml (внутри тега project)

<build>
  <sourceDirectory>src/main/java</sourceDirectory>
</build>

src/main/java - это исходная папка, которую вы хотите установить. Если у вас уже есть эта строка в файле pom.xml, проверьте правильность.

Ответ 5

Вы должны объявить в структуре проекта (Ctrl + Alt + Shift + s) в разделе "Модуль" отметьте ваши папки, из которых они являются исходным пакетом (синий) и которые являются тестами...

Ответ 6

У меня были те же проблемы из-за поврежденных или, возможно, устаревших файлов intellij. До обновления до 14.0.2 у меня был отлично работающий проект с ПРАВИЛЬНО именованными пакетами и файловыми иерархиями.

После обновления компиляции maven работали без сбоев, но Intellij сообщал об указанной ошибке на конкретном пакете (другие пакеты с похожими характеристиками не были затронуты).

Я не стал вдаваться в подробности, но я удалил свои файлы .iml и папки .idea, аннулировал кэши, перезапустил IDE и снова открыл проект, опираясь на мою конфигурацию maven.

ПРИМЕЧАНИЕ. Это эффективно удаляет настройки запуска и отладки!

Может быть, кто-то, кто понимает файлы рабочей области intellij, мог бы прокомментировать это?

Еще один комментарий для тех, кто ищет это дальше: Рефакторинг в проектах, управляемых SC, может оставить после себя пыль - у меня есть "старая" папка, в которой есть повторы текущей структуры пакета. Если файлы .iml или .idea имеют какие-либо ссылки на эти пакеты, вполне вероятно, что intellij может быть перепутан со ссылками на старые пакеты. Удачи, товарищи StackExchangers.

Обновление: я удалил некоторые файлы в проекте maven, на который ссылаются, и причуды вернулись. Итак, мой пост ни в коем случае не является окончательным ответом.

Ответ 7

Я просто сражался с подобной проблемой. Моим решением было установить исходный исходный файл для модуля Intellij в соответствии с исходной корневой папкой проекта. Затем мне нужно было отметить некоторые папки как Исключенные в панели навигации проекта (тот, который не должен использоваться в новом проекте, для меня это было частью, используемой под Android). Это все.

Ответ 8

Может быть, кто-то сталкивается с аналогичным предупреждением, которое я получил с проектом Scala

Имена пакетов не соответствуют структуре каталогов, это может вызвать проблемы с разрешением на классы из этого файла. Проверка файлов с оператором пакета, который не соответствует структуре пакета.

Файл находился в правильном месте, поэтому вспомогательные решения, которые предоставляет IDE, бесполезны enter image description here Перемещение файла говорит, что файл уже существует (это правда), и Rename Package фактически переместит его в неправильный пакет.

Проблема в том, что если у вас есть объекты Scala, вы должны убедиться, что первый объект в файле имеет то же имя, что и имя файла, поэтому решение состоит в том, чтобы переместить объекты внутри файла.

Ответ 9

Котлин

Для тех, кто использует Kotlin, которые следуют соглашениям пакета документов:

В чистых проектах Kotlin рекомендуемая структура каталогов должна соответствовать структуре пакета с опущенным общим корневым пакетом (например, если весь код в проекте находится в пакете "org.example.kotlin" и его подпакетах, файлы с "org"). Пакет .example.kotlin "должен быть размещен непосредственно под исходным корнем, а файлы в" org.example.kotlin.foo.bar "должны находиться в подкаталоге" foo/bar "исходного корня).

IntelliJ пока не поддерживает это. Единственное, что вы можете сделать, это отключить это предупреждение и признать, что IDE не поможет вам с рефакторингом, когда дело доходит до изменения структуры папок/файлов.

Ответ 11

Это сложно здесь. В моем случае структура папок была такой:

ком /APPNAME/rateUS/модели /FileName.java

Имя пакета, которое я указал в файле FileName.java:

package com.appName.rateUs.models;

Обратите внимание на небольшую разницу между именем пакета: оно должно быть rateUS вместо rateU s

Надеюсь, это поможет кому-то!

Ответ 12

Можно указать Intellij игнорировать эту ошибку.

Файл > Настройки > Редактоp > Инспекции, затем найдите "Неверная инструкция пакета" (под Java, Вероятные ошибки) справа и снимите флажок.