Как определить модуль Java 9 внутри каталогов как исходного кода, так и исходного кода? - PullRequest
2 голосов
/ 03 мая 2019

У меня действительно тяжелые времена с некоторыми модулями 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'.

Как правильно определить зависимости и модули?

...