В настоящее время я тестирую перенос приложения Java 8 на Java 9/Jigsaw с помощью jdk-9 + 149.Где я должен поставить модульные тесты при переносе проекта Java 8 на Jigsaw
Проект был выложен в стандартной схеме директорий Maven, т.е. имеющий src/main/java
, src/test/java
и т.д.
Как только я добавляю module-info.java
к src/main/java
, Maven-компилятор-плагин не бросает NullPointerException. Это связано с тем, что он ожидает найти информацию о модуле для каталога test
. Итак, насколько я могу судить, существуют следующие варианты:
- хранят классы тестов в отдельном модуле, что означает, что они могут получить доступ только к экспортированным пакетам основного модуля.
- переместить тестовые классы в основной модуль вместе с источниками, что означает, что основному модулю нужны тестовые зависимости.
Очевидно, что ни один из этих вариантов не представляется желательным, поэтому я предполагаю, что рекомендуется использовать модули Jigsaw в проекте Maven. Неохотно я не мог найти ни рекомендаций, ни примеров.
EDIT: Добавление некоторой информации, которую я не считал уместным, отправляя вопрос (извините)
- the NullPointerException I ran into
- Maven 3.3.9
- Maven-компилятор плагин 3.6.0
- источник и целевая конфигурация: 9
Какой источник и цель вы указали как конфигурацию в плагине maven-compiler? Также, пожалуйста, разделите трассировку стека для NPE, чтобы быть понятным по поводу ошибки. – nullpointer
К сожалению, добавлена дополнительная информация. Но в основном, NPE был всего лишь симптомом, который привел меня к реальному вопросу, как я буду заниматься испытаниями в целом. – peterp