У меня есть мультимодульный проект Maven. Для этого примера рассмотрим два модуля:
-
data
-
consumer
Модуль consumer
имеет модуль data
как зависимость.
Модуль data
объявляет кучу основных классов. Существуют тесты под src/test
, которые используют их. Эти тесты требуют некоторого создания длинного объекта, поэтому у меня есть класс с некоторыми методами утилиты, чтобы создавать эти объекты. Этот класс утилиты (SampleDataHelper
) находится в иерархии src/test
.
У меня также есть несколько тестов в модуле consumer
, которым необходимо создать некоторые из этих объектов с длинной ветвью. Я хочу использовать класс SampleDataHelper
(определенный в data src/test
) в тестах, которые находятся в моем дереве consumer src/test
. К сожалению, хотя data
является зависимостью от consumer
, consumer
не может видеть классы, которые существуют в data src/test
.
Чтобы бороться с этим, я подумал, что могу создать еще один модуль (data-test
) и переместить SampleDataHelper
в него под src/main
. Тогда я бы включил data-test
в качестве зависимости от области проверки data
. К сожалению, это вводит циклическую зависимость: data
использует data-test
, но data-test
также требует data
.
Единственное решение, с которым я столкнулся, - это разместить SampleDataHelper
под data src/main
в пакете test
и надеяться, что никакой код приложения никогда не назовет его.
Как я могу поделиться своим классом SampleDataHelper
между модулями, не помещая его под src/main
?