У меня есть мультимодульный проект 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?