Не удается импортировать файл класса из проекта Java в другой файл класса в том же проекте

#java #eclipse #maven #import #package

Вопрос:

У меня есть проект Java Maven в Eclipse (2021-09 (4.21.0)), и я пытаюсь импортировать класс, вызванный BaseTest.java в другой класс ( ElementFetch.java ) в рамках того же проекта, но в отдельном пакете. Если вы посмотрите на скриншот ниже, вы увидите мое import src.test.java.youtubeframework.BaseTest; заявление и заметите индикатор ошибки в строке 5. Независимо от путей, которые я указываю:

 import youtubeframework.src.test.java.youtubeframework.BaseTest; import src.test.java.youtubeframework.BaseTest;  import test.java.youtubeframework.BaseTest; import java.youtubeframework.BaseTest; import youtubeframework.BaseTest; import BaseTest;  

импорт не будет работать. Всегда существует ошибка, из-за которой импорт не работает.

Кто-нибудь может, пожалуйста, сказать мне, что я делаю не так?

Настройка моего проекта Eclipse

Ответ №1:

Ваша первая проблема заключается в том, что вы используете исходный путь для класса, как если бы это было имя пакета. Правильное имя пакета должно быть youtubeframework . Так что вы должны (теоретически) использовать import youtubeframework.BaseTest .

Но вторая проблема заключается в том, что ваш «основной» код Java не может зависеть от вашего «тестового» кода Java. Вот почему import youtubeframework.BaseTest это не работает.

В представлении Maven о мире дерево «тест» предназначено для кода, который используется только для тестирования материалов в «основном» дереве:

  • «тестовые» классы могут зависеть от «основных» классов.
  • «основные» классы не могут зависеть от «тестовых» классов.

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

Комментарии:

1. БИНГО! Это решило проблему! Я добавил новый пакет под названием «база» в src/main/java, и теперь импорт работает с простым: база импорта. BaseTest Спасибо вам!!!