У меня действительно тяжелые времена с некоторыми модулями Java. Я работаю над старым проектом Java, который был "перенесен" в Java 11. Нигде в проекте не определен файл module-info.java
.
Я получаю ошибки компиляции в Eclipse / VS Code, которые выглядят так:
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml
Я не до конца понимаю причину проблемы, но я добавил определение module-info.java
в корень модуля.
module com.company.app {
requires java.xml;
}
И эта ошибка компиляции исчезла. У меня теперь есть ошибки видимости везде и много, много больше, чем раньше.
Я начал исправлять ошибки видимости с записями exports
и imports
по мере необходимости, но теперь у меня проблема.
В одном из проектов есть source
и отдельная папка source-test
. Я определил определение модуля в папке source
.
Код в папке source-test
является отдельным, но имеет ту же структуру пакета. Следующий код:
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.junit.experimental.categories.Category;
The import org cannot be resolved.
(в строке import static
).
The type org.junit.Test is not accessible
(в соответствующей строке)
The type org.junit.experimental.categories.Category is not accessible
(еще раз, в соответствующей строке.)
Я не хочу добавлять зависимость junit в основной код проекта, так как это зависимость тестирования. Однако, если я определю другой модуль module-info.java внутри папки source-test
, он пожалуется на путь сборки, содержащий повторяющуюся запись 'module-info.java'.
Как правильно определить зависимости и модули?