Kotlin в проекте Java, неразрешенные ссылки - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь включить сом-файлы Kotlin в довольно большой Java-проект IntelliJ, и я наткнулся на случай, когда я получаю «неразрешенную ссылку» на абсолютно каждый импорт.

(упрощенная структура проекта:

Project:
saksbehandling
- e2e 
   - cucumber
    - src
      - test
        - java
          -e2e
            - support
   - common
    - src
      - main
        - java
          - common
            - testdata

Классы Kotlin в модуле support работают нормально. Классы Kotlin в модуле common отсутствуют.

Этот же файл находится в папках / e2e / cucumber / src / test / java / e2e / support и / e2e / common / src / main / java / common / testdata. В последнем я получаю «Неразрешенную ссылку» при попытке любого вида импорта. Пример:

import api.utils.ApiResourceFactory
import com.google.common.io.Resources
import e2e.utils.AdressIterator

Теперь, неразрешенные ссылки api.utils и e2e.utils - это одно. Но ссылка com.google? Это говорит мне, что что-то серьезно отсутствует или сломано.

Я искал конфликтующие версии и т. Д., Но это все тот же проект, так как проблема может быть связана с этим? Кроме того, зависимость модуля common от модуля cucumber не помогает, а также не очень хорошая идея.

Есть идеи, как решить эту, вероятно, глупую проблему новичка?

Кстати: кроме того, при создании файла Kotlin в модуле common , где не выполняется импорт, неожиданно рабочий файл Kotlin в модуле cucumber также начинает получать неразрешенные ссылки на вещи, которые работали, пока не был создан новый файл.

UPDATE:

Используя эту ссылку: https://www.baeldung.com/kotlin-maven-java-project, чтобы настроить файл .pom, я смог заставить работать большую часть импорта.

Однако некоторые странные вещи все еще не работают:

import kotlin.collections.ArrayList по-прежнему выдает «Неразрешенная ссылка: ArrayLIst»

И в коде я получаю «Неразрешенную ссылку» на следующий

listOf()
educationMap[fnr] (the []'s - No set method providing array access
ComplaiuntWhoEnum::class.java.enumConstants - Unresolved reference: Java

Я даже получаю сообщения об ошибках Unresolve: Int (!)

ОБНОВЛЕНИЕ 2:

Если я создаю папку / common / src / main / kotlin, все выглядит лучше. Но тогда я не могу импортировать эти классы в классы в модуле cucumber.

1 Ответ

0 голосов
/ 23 мая 2019

Если ваша сборка не выполняется за пределами IntelliJ, вам, вероятно, следует начать с исправления. Возможно, опубликуйте полученную ошибку и свою конфигурацию сборки, чтобы получить помощь.

Если все работает за пределами IntelliJ IDEA, возможно, конфигурация ваших модулей устарела и IntelliJ изо всех сил пытается это исправить.

2 решения работали до сих пор для меня при реорганизации модулей в IntelliJ:

  • File > Invalidate caches / Restart
  • Если первый не работает, попробуйте удалить проект, удалить файлы IDEA и повторно импортировать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...